毎日の長さが変化するperlで文字列を取得する必要があります。以下のURLコンテンツをご覧くださいウェブページから未知の長さの文字列を取得する方法
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<head>
<title>Index of /isos/preFCS5.3/LATESTGOODCVP</title>
</head>
<body>
<h1>Index of /isos/preFCS5.3/LATESTGOODCVP</h1>
<table><tr><th><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr><tr><th colspan="5"><hr></th></tr>
<tr><td valign="top"><img src="/icons/back.gif" alt="[DIR]"></td><td><a href="/isos/preFCS5.3/">Parent Directory</a></td><td> </td><td align="right"> - </td></tr>
<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="CVP-LATEST-5.3.0.37.iso">CVP-LATEST-5.3.0.37.iso</a></td><td align="right">19-Jul-2011 03:32 </td><td align="right">816M</td></tr>
<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="ChangeLog-LATEST.2011-07-19-03h.30m.01s">ChangeLog-LATEST.2011-07-19-03h.30m.01s</a></td><td align="right">19-Jul-2011 03:32 </td><td align="right"> 16K</td></tr>
<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="is.iso">is.iso</a></td><td align="right">19-Jul-2011 03:32 </td><td align="right">816M</td></tr>
<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="md5SUM">md5SUM</a></td><td align="right">19-Jul-2011 03:32 </td><td align="right">111 </td></tr>
<tr><th colspan="5"><hr></th></tr>
</table>
<address>Apache/2.2.3 (Red Hat) Server at www.google.com Port 80</address>
</body></html>
"CVP-LATEST-5.3.0.37.iso"という文字列が表示されます。 これを$ nameに入れる必要があります。 文字列CVP-LATEST-5.3.0.37.isoは、毎日 、またはCVP-LATEST-5.3.0.39.isoまたはCVP-LATEST-5.3.39a.iso、またはCVP-LATEST-6.1.isoまたはCVP- LATEST-6.23.23.112.iso。
私はこれを得る方法はありますか?ここで
は、コードあなたがそのは5.3.0の後にのみ番号(XX)を取得したコードを見ればここでuse strict;
use warnings;
use LWP::Simple;
my $oldVersion = CVP-LATEST-5.3.0.37.iso;
my $url = 'http://www.google.com/isos/preFCS5.3/LATESTGOODCVP/';
my $newPage = get($url)
or die "Cannot retrieve contents from $url\n";
if ($newPage =~ /href=\"CVP-LATEST-5\.3\.0\.(\d\d)/) {
my $version = $1;
if ($version != $oldVersion) {
my $status = getstore($url . "CVP-LATEST-5.3.0.$version.iso",
"CVP-LATEST-5.3.0.$version.iso");
} else {
print "Already at most recent version\n";
}
} else {
die "Cannot find version tag in contents from $url\n";
}
。「XX」で、2
ある既知の長さでありますとにかく、ファイル名全体を読むように変更することができますか? CVP-LATEST-XXXXXX * .isoと比較して$ oldversionと比較しますか?
文字列 "CVP-LATEST-"と ".iso"は一定のままですが、後の数字は変更され、アルファベットも含まれることに注意してください。 URLコンテンツにis.isoというファイルがもう1つ存在することにも注意してください。私はそれを取得したくありません。
があなたの前の質問の一部に対する回答を受け付けてくださいダブルクォート、正規表現ではなくHTMLに。あなたはそうしないことによって人々があなたの質問に答えるのをやめさせています。 – Zaid