我想創建一個腳本,將得到2個paramerters(小時和分鐘)(HH1:MN1和HH2:N2)加入時間的Perl腳本
- 它具有有效的,如果#ARGV = 2
- 的Valide如果時間提供正確(0之間〜200和小時分鐘之間0至59)
- 添加那些thow時間和打印到結果
- 如果它超過24小時,以打印Nbday; HH:最小
- 如果超過7天它將打印周; nddays; HH:最小。
我開始用這個,但不能figureout如何繼續 任何幫助或想法會受到歡迎的計算 感謝
#!/usr/bin/perl
if ($#ARGV != 2)
{
print STDERR "Erreur Parameters have to be 2\n";
exit (-1);
}
if ($ARGV[0] = ~/([0-9] | 1 [0-9] ? [0-9] | 200) : ([0-5] ? [0-9]) /)
{
$heures1 = $1;
$minutes1 = $2;
}
else
{
print STDERR "first parameter invalid\";
exit (-1);
}
if ($ARGV[1] = ~/([0-9] | 1 [0-9] ? [0-9] | 200) : ([0-5] ? [0-9]) /)
{
$heures2 = $3;
$minutes2 = $4;
}
`else `
{
print STDERR "Second parameter invalid\";
exit (-1);
$heures = $heures1 + $heures2;
$minutes = $minutes1 + $minutes2'
'我的($ heures1,$ minutes1)= $ ARGV [0] =〜/ ^([0-9] | 1 [0-9] [0-9 ] | 200):([0-5]?[0-9])$/ 或死於「第一個參數無效」;'不使用全局變量,只佔用兩行而不是七行。 – ikegami 2013-03-28 01:13:24
'(標量(@ARGV)!= 2)'是寫'@ARGV!= 2'的複雜方式。 – ikegami 2013-03-28 01:14:07
你不準20:00。這表明,正則表達式不是範圍檢查的方式。很容易出錯,而且這是不可讀的(證明你沒有注意到20:00不匹配)。 – ikegami 2013-03-28 01:27:29