このプログラムなんですが
#! /usr/bin/perl
@data=<>;
open (IN,"newtype.txt");
@file = <IN>;
close (IN);
foreach $address (@file)
{
($pn,$ad) = split(/\t/,$address);
$pnad{$pn}=$ad;
}
foreach $jusyo (@data)
{
chomp $jusyo;
print $jusyo;
print "\n";
print "$pnad{$jusyo}";
}
foreach $line (@file)
{
@data = split(/t\/, $line);
if($data[0] =~ "51105")
{
print "$data[0]";
print "$data[1]";
}
elsif($data[0] =~ "651130")
{
print "$data[0]";
print "$data[1]";
}
}
exit;
コンパイルするときには
./sample.pl data.txt をシェルにうって実行します。
このプログラムでは、はじめに自分で指定したファイル内に存在する郵便番号(通常は7桁だけなんですが、プログラムを見ていただければわかると思われますが、それ以外に5桁(たとえば12354XX,x12354x,xx12354など))と6桁(134567x,x134567など)がありまして、それを表示させたいんですが、上のプログラムでは、if文以下の5桁と6桁があった場合にそれを同時に表示させるプログラムができていないんです。
ハッシュをもちいてプログラムを作り直したいんですが、教えてください。
今日の夜8時までに出さなくてはいけないので、すぐに回答をいただけたらありがたいです。