Perl   发布时间:2022-04-07  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Perl:意外的$_行为大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
use Modern::Perl;
use datetiR_921_11845@e;
use autodie;

my $dt;

open my $fh,'<','data.txt';

# get the first date from the file
while (<$fh> && !$dt) {
   if ( /^(\d+:\d+:\d+)/ ) {
      $dt = datetiR_921_11845@e->new( ... );
   }
   print;
}

我期待这个循环读取文件的每一行,直到读取第一个datetiR_921_11845@e值.

相反,$_是单元化的,我得到一个“未初始化的值$_在模式匹配”(和打印)消息.

任何想法为什么会这样?

一个

解决方法

$_仅在您使用表单而不是(< $fh>)表单时设置.

看这个:

$cat t.pl
while (<$fh>) { }
while (<$fh> && !$dt) { }

$perl -MO=Deparse t.pl
while (defined($_ = <$fh>)) {
    ();
}
while (<$fh> and not $dt) {
    ();
}
t.pl syntax OK

来自perlop文档:

大佬总结

以上是大佬教程为你收集整理的Perl:意外的$_行为全部内容,希望文章能够帮你解决Perl:意外的$_行为所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。