GetOptions函数仅在相关时才处理以短划线开头的参数及其对应的值。处理完选项后,会将其从@ARGV中删除。(选项名称和选项值都将被删除。)命令行上的其他任何非关联值都将保留在@ARGV中。use Data::Dumper qw(Dumper); use Getopt::Long qw(GetOptions);...
注意,@ARGV数组的索引从0开始。如果需要传递更多的参数,可以依次使用$ARGV[2],$ARGV[3],等等。 另外,可以使用scalar函数获取@ARGV数组的长度,以确定传递了多少个参数: my $num_args = scalar @ARGV; print "传递的参数个数: $num_args\n"; 复制代码 如果需要更复杂的命令行参数解析,可以使用Getopt::Long模...
1.调用函数& 2.特殊变量@_ 3.局部私有变量my(子程序的私有变量) 1.错误的定义方式 3.strict 2.私有局部变量 4.持久性变量state 5.reverse在sub中的使用 三、输入输出 1.输入 1.行输入操作符<STDIN> 2.钻石操作符<> ARGV数组(钻石操作符处理调用参数) 2.输出 1.print和say 2.printf 四、文件句柄 1....
'---name="longshuai"-age=23abc defARGV: abc defNAME&AGE: longshuai,23 上面传递的参数是-name="longshuai" -age=23 abc def,因为开启了-s选项,所以解析了两个perl变量$name=longshuai $age=23,另外两个abc def则被收集到ARGV数组中。 特殊变量 $\ 表示print函数的输出行分隔符。默认为undef,所以pr...
_:默认变量,比如for循环里可用$_,很多函数也以$_作为默认参数 ARGV:命令行参数,类似C的argv[],第一个参数不是函数名 <stdin>:标准输入流,<FD>表示文件句柄FD的输出流,用于读取标准输入/文件的输入,用法:a = <stdin> 一次读取所有输入到@a中 a = <stdin> 每次读取一行到$a中 _...
含义是包含了程序从命令行得到的所有参数。比如运行a.pl 10 20 30 a b c则,$ARGV[0]是10$ARGV...
@ARGV在程序开始时就已经被塞满了调用参数 如果@ARGV是个空列表,就会改用标准输入流 输出到标准输出 print操作符会读取后续的所有元素,并把每一项一次送到标准输出 区分两个print 1@array=(1..5);23print@array,"\n";4print"@array\n"; 第一个print语句会一个接一个地打印数组中的所有元素,元素之间没有...
4. ARGV:命令行参数文件句柄。可以用于读取命令行传递的参数。 “`perl while() { # 读取命令行参数 } “` 除了以上常用的文件句柄,还可以通过open函数创建自定义的文件句柄,用于打开和处理特定文件。 “`perl # 创建自定义文件句柄 open(CUSTOM_HANDLE, “<", "file.txt") or die "Cannot open file.txt...
do 非常适合创建一个操作的作用域: my $file_contents = do { local $/; local @ARGV = ( $filename ); <> }; do还支持字符串参数的形式: do $filename; do 语句查找文件并读取该文件,然后切换内容为 eval 语句块的字符串形式,以执行它。 因此do 将忽视文件中的任何错误,程序将继续执行。 3.6 ...
$scalarref=\$foo;# 标量变量引用$arrayref=\@ARGV;# 列表的引用$hashref=\%ENV;# 哈希的引用$coderef=\&handler;# 子过程引用$globref=\*foo;# GLOB句柄引用 在数组中我们可以用匿名数组引用,使用 [] 定义: $aref=[1,"foo",undef,13];