<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>
Ola monges.<br><br>Estou com problema para salvar arquivos *.mp3 recebidos via download.<br><br>Ao salvar a mensagem retornada é 'print () on closed filehandle FH at C:\User\AG\Desktop\mes.pl line 31.'.<br><br>O sistema so retorna 'Invalid argument' quando uso o $!.<br><br>Então usei o autodie para ver o que me retornava:<br>"Can't open '>Thaeme e Thiago - Ai que do.mp3' for writing: at 'Invalid argument' C:\User\AG\Desktop\mes.pl line 19."<br><br>Enfim, não estou entendendo o erro retornado.<br><br>http://pastebin.com/qxCMLv1V<br><br>#!/usr/bin/env perl<br><br>use common::sense;<br>use WWW::Mechanize;<br>use autodie;<br><br><br>sub parse {<br> my ($self) = shift;<br> $self =~ s/\s+/\+/g;<br> chomp $self;<br> print "Now --> " . $self . "\n\n";<br> return ("http://www.buscamp3.org/busca/" . $self);<br>}<br><br>sub gd {<br> my ($self, $name) = @_;<br> print $self . " == " . $name . "\n\n";<br> open my $fh,">". $name . ".mp3";<br> my $m = WWW::Mechanize->new();<br> my $p = $m->get($self);<br> $p = $p->decoded_content;<br> $m->max_redirect(1);<br> my @Links = $m->links();<br> my $w = 0;<br> SWU: foreach my $link(@Links){<br> my @a = split ("/", $link->url());<br> if ($a[1] =~ m/dl/gi){<br> print "OK!\n";<br> my $c = $m->get("http://www.buscamp3.org" . $link->url());<br> print $fh $c->decoded_content;<br> close $fh;<br> $w = 1;<br> }<br> last SWU if ($w == 1);<br> }<br> undef $m;<br>}<br><br><br>open IN, $ARGV[0] or die;<br><br>foreach (<IN>){<br> print "Search for: " . $_ . "\n";<br> my $a = parse($_);<br> gd($a, $_);<br> print "\n\n";<br>}<br> </div></body>
</html>