我刚参加了一个项目,我应该了解以前的人的剧本。
我是Perl的新手。有人可以告诉我这句话意味着什么吗?
my $name = $1;
如何为变量赋值$something
?我试图打印它,但它给了我一个错误信息。
答案 0 :(得分:5)
$1
是一个特殊变量,用于返回正则表达式中的第一个捕获组。
例如,您可能会看到类似的内容:
my $string = 'this is an example of 34 a match! 99 foo bar';
$string =~ /\d+\s(.*?)(\d+)/;
在这种情况下,第一个捕获的组(a match!
)将存储在变量$1
中,第二个(99
)将存储在$2
中。
print "first capture group = $1\nsecond capture group = $2\n";
您可能想要重新分配这些:
my $match = $1;
my $number = $2;
答案 1 :(得分:0)
除了@fugu说,我想表达更多。当您使用$3
时,$3
中将没有任何内容,因为在该示例中,仅匹配2次。在perl中,使用了许多变量,例如$1
,$2
,$3
,循环中的当前变量有$_
; $_[0]
,$_[1]
,..用于函数中的变量; ARGV[0]
..用于脚本的argv,依此类推。使用这些来节省手动工作。