好的,所以问题标题可能有点混乱。我在下面的代码中复制了我的实际问题:
我正在创建具有两个不同 IP 地址作为前缀的文件,然后我想仅列出具有特定 IP 地址前缀的文件:
我正在创建以“10.10.10.10”和“11.11.11.11”为前缀的文件,然后我只想列出带有“10.10.10.10”前缀的文件。
这是我的代码:
#!/usr/bin/perl -w
use strict;
my $ipaddr1 = '10.10.10.10';
for ( my $counter = 1; $counter < 10; $counter++)
{
my $filename = $ipaddr1."_".$counter.".txt";
open (my $fh, ">", $filename) or die "$! \n";
}
my $ipaddr2 = '11.11.11.11';
for ( my $counter = 1; $counter < 10; $counter++)
{
my $filename = $ipaddr2."_".$counter.".txt";
open (my $fh, ">", $filename) or die "$! \n";
}
print "Done with creating hte files. \n";
print "Lets print the files with only 10.10.10.10 prefix \n";
for my $var ( `ls -1 $ipaddr1_*` ) ### <<< this is the probelm
{
print $var;
}
输出:
Global symbol "$ipaddr1_" requires explicit package name at test.pl line 21.
Execution of test.pl aborted due to compilation errors.
因此,我完全理解在执行 bash 命令时无法解释 perl 变量的错误。
问题:
如何做到这一点?我不想将显式 IP 地址传递给ls -1
命令,而是想传递包含相应 IP 地址的变量。
谢谢。