<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>