我传递一个标量子程序中,我想测试如果参数一个正则表达式匹配:在Perl中,如何将变量作为参数传递给子例程?
use strict;
use warnings;
use Data::Dumper;
print "Please enter your first name followed by your last name. For example: John Smith.\n";
chomp(my $name = <STDIN>);
&analyze_name($name);
sub analyze_name {
if ($_ =~ /^\w+\s+\w+$/) {
print "You entered $_.";
} else {
print "Incorrect convention";
}
}
我得到的输出与以下错误
Please enter your first name followed by your last name. For example: John Smith.
firstname lastname
Incorrect convention
Use of uninitialized value $_ in pattern match (m//) at /home/jhusbands/scripts/examples/test.pl line 13, <STDIN> line 1.
我的想法是,将通过$name
到“魔术变数”$_
。我需要在多个<STDIN>
变量上重用此子例程。我如何初始化$_
?
事实上,*伟大*! –