-2

私は大学の演習でこの部分に苦労しています...ファイルから文字列を読み取り、それらを別の変数に入れる必要があります...チーム、親切に確認して、自由な時間に返信してください...

入力ファイル: (test_ts.txt)

Test1--12:45
Test2--1:30

脚本:

use strict;
use warnings;

my $filename = "test_ts.txt";
my @name = ();
my @hrs=();
my @mins=();

open(my $fh, $filename)
  or die "Could not open file '$filename' $!";

while (my $row = <$fh>) {
  chomp $row;
  push(@name, $row);
  print "$row\n";
}

出力:

Test1--12:45
Test2--1:30

期待される出力:

Test1
Test2

*(Array should have the below values
name[0]=Test1
name[1]=Test2
hrs[0]=12
hrs[1]=1
mins[0]=45
mins[1]=30)*

スプリットを使用してみました:

while (my $row = <$fh>) {
  chomp $row;
  $row=split('--',$row);
  print $row;
  $row=split(':',$row);
  print $row;
  push(@name, $row);
  print "$row\n";
}

分割を試みた後に得た出力:

211
211
4

3 に答える 3

0

これは、「--」に基づいて行を分割し、次に「:」に基づいて時間を分割する簡単な方法です。これがお役に立てば幸いです。

use strict;
use warnings;

my $filename = "test_ts.pl";
my @name = ();
my @hrs=();
my @mins=();

open(my $fh, $filename)
or die "Could not open file '$filename' $!";

while (my $row = <$fh>) {
chomp $row;
my ($a,$b) = split("--", $row);
my ($c, $d) = split (":", $b);
push(@name, $a);
push(@hrs, $c);
push(@mins, $d);
}
print "$name[0]\n";
print "$name[1]\n";
print "$hrs[0]\n";

print "$hrs[1]\n";
print "$mins[0]\n";
print "$mins[1]\n";
于 2014-04-28T05:10:08.777 に答える