my 就是将变数本地化, 即是$xy,$x,$y,$N,$len 在离开 sub test 的范围就不会有效 my ($xy,$x,$y,$N,$len)=@_; 就是将收到的参数分别赋值到($xy,$x,$y,$N,$len) 这堆变数之中
perl 中的my (@list) = @_是什么意思啊。慕标5832272 浏览2640回答2 2回答 UYOU 在子程序中默认数组@_中保存了传变的变量例sub a {my @list=@_;}&a(1,2,3);那么在子程序a中@_的数值就是(1,2,3);在子程序中也常用shift,例如:my $a=shift;这里shift将@_中第一个单元值赋予变量$a并删...
其实@_就是默认数组。它会根据语言环境自动获取某些变量或数组,这样的好处是语言的灵活性很大,同时也会让初学者很容易迷惑。你多动手试试,多用用就好了。这个是常用的特殊变量。要熟练掌握的。
我很难理解OO Perl和my $self = shift;的交集。这些单独元素的文档都很棒,但我找到的任何内容都没有涉及它们如何一起工作。 我一直在使用Moose制作带有属性的模块,在模块内引用该模块的属性当然很有用。我一遍又一遍地被告知在子例程中使用my $self = shift;将模块的属性分配给该变量。这很有道理并且行得通,...
$mePref = $me) =~ s#(.*).pl#$1#;表示去掉.pl后缀名。在s///操作符中,可以用#、!等来作为分隔符。(my $mePref = $me) =~ s#(.*).pl#$1#;也可以写为(my $mePref = $me) =~ s/(.*).pl/$1/;me是用来控制该脚本在cmd中运行,而不是在cygwin中运行。是这个意思。
::在perl里代表调用模块里的函数 如果$ETL是一个模块,STR_INC_STARTDATE就是$STL模块里的一个函数,就跟FILE::PATH一样,谢谢采纳
ARGV命令行传入的参数 自己试一下看会输出什么*.pl sth sth1 my $rootdir = $ARGV[0];my $check_log = $ARGV[1];print "$rootdir,$check_log";
sub function { my $content = shift print $content;} 下文应该是这样 function ( "haha!" )执行後会出现 haha!首先要明白, shift 是将数组的第一个元素 $array[0] 移走, 并将这个元素回传(return).arr = ( 1,2,3,4 );my $str = shift @arr;现在 $str是 1, @arr 是 ( 2,3...
为一个哈希变量赋值,且这个哈希是局部变量,名字叫span。