現在、fstab ファイルを読み取り、それらを列ごとに分割し、各列のどの単語が最も長いかを検索して表示する Perl スクリプトがあります。それはすべて桃色に機能します(私が思うに)、私が抱えている問題は、すべての行で同じ長さを出力し続けることです。これは真実ではありません。例 $dev_parts は 24 を出力し、$labe_parts は 24 を出力します...
以下は私のコードです。
#!/usr/bin/perl
use strict;
print "Enter file name: \n";
my $file_name = <STDIN>;
open(IN, "$file_name");
my @parts = split( /\s+/, $file_name);
foreach my $usr_file (<IN>) {
chomp($usr_file);
@parts = split( /\s+/, $usr_file);
push(@dev, $parts[0]);
push(@label, $parts[1]);
push(@tmpfs, $parts[2]);
push(@devpts, $parts[3]);
push(@sysfs, $parts[4]);
push(@proc, $parts[5]);
}
foreach $dev_parts (@dev) {
$dev_length1 = length ($parts[$dev_parts]);
if ( $dev_length1 > $dev_length2) {
$dev_length2 = $dev_length1;
}
}
print "The longest word in the first line is: $dev_length2 \n";
foreach $label_parts (@label) {
$label_length1 = length($parts[$label_parts]);
if ($label_length1 > $label_length2) {
$label_length2 = $label_length1;
}
}
print "The longest word in the first line is: $label_length2 \n";