我想撰寫一個 perl 腳本,詢問用戶一個字串,然后找到包含該字串的行并列印它們。這就是我到目前為止所擁有的
#!/usr/bin/perl
use strict;
use warnings;
sub main
{
print "First name or Last Name or any portion: ";
my $name = <STDIN>;
my $file = '/home/jake/Downloads/phones';
open(FH, $file) or die("File $file not found");
while(my $String = <FH>)
{
if($String =~ $name)
{
print "$String \n";
}
}
close(FH);
}
main();
每當我嘗試這個時,終端都不會列印任何東西。有什么可以解決的嗎?
uj5u.com熱心網友回復:
試試這個:
#!/usr/bin/perl
use strict;
use warnings;
sub main
{
print "First name or Last Name or any portion: ";
my $name = <STDIN>;
chomp $name;
my $file = '/home/jake/Downloads/phones';
open my $fh, '<', $file or die "$file: $!\n";
while(my $string = <$fh>)
{
if($string =~ /$name/)
{
print "$string\n";
}
}
close($fh);
}
main();
- 您需要使用 省略換行符
chomp
。 - 使用現代方式讀取檔案,使用詞法檔案句柄。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/516898.html
標籤:perl
上一篇:如何洗掉陣列中的重復參考?