カンマ区切りファイルの2列目に存在する指定時刻から分を抽出して計算したい。時刻の形式は次のとおりです。
午前 9:31:00
分の値を抽出し、これまでの 1 日の合計分数を計算したいと思います。サブルーチン get_time でこれを行います。しかし、戻り値は常にゼロであり、POSIX::strptime を正しく使用していないと思われます。どんな洞察も素晴らしいでしょう。ありがとうございました。
#!/usr/bin/env perl
use strict;
use POSIX::strptime;
use Text::CSV;
sub get_time
{
my($str) = @_;
my ($sec, $min, $hour) = (POSIX::strptime($str, '%I:%M:%S')) [3,4,5];
print "$hour\n";
return($hour*60 + $min)
}
open my $fh, "<", datafile.txt
my $csv = Text::CSV->new() or die "Failed to create Text::CSV object";
my $line = <$fh>;
die "Failed to parse line <<$line>>\n\n" unless $csv->parse($line);
my @columns = $csv->fields();
while ($line = <$fh>)
{
chomp $line;
die "Failed to parse line <<$line>>\n\n" unless $csv->parse($line);
my @columns = $csv->fields();
die "Insufficient columns in <<$line>>\n" if scalar(@columns) < 1;
my $minute = get_time($columns[1]);
print "$minute\n";
}