Sobre o open(): isso já foi pergunta de entrevista para programador Perl :) O jeito *menos polêmico* de se gravar coisas em um arquivo é:
my $out; open($out, '>', $dir/$id_produto/$img") or die "Erro..."; print $out $something; close($out); Concatenar '>' com o nome do arquivo tem corner cases interessantes. E manter separado tem algumas vantagens, como, por exemplo, especificar a codificação do arquivo texto: open($out, '>:encoding(UTF-8)', 'texto.txt') or die "Erro..."; 2015-11-18 12:42 GMT+01:00 Ricardo Stock <ricardost...@bol.com.br>: > Bom dia Daniel. obrigado pelo esclarecimento, mas veja, abro o arquivo da > forma que mencionou > > #Abro o diretorio para excrita, o mesmo é criado antes > open OUT, ">$dir/$id_produto/$img" or die "Erro ao salvar a imagem com o > codigo de barras $!"; > > os tres argumentos, file_handle OUT > o arquivo > e a msg de erro “, que coloco uma mensagem particular para localizar mais > facilmente o erro e o erro propriamente dito $! > > A diferença é que mando abrir para escrita no proprio arquivo “>Arquivo” > Sempre fiz desta maneira, até mesmo por ver em documentaçao, vou fazer como > falou. Posso estar errado ! > > Obrigado > > Também em todos os codigos utilizo > > #!/usr/bin/perl –w > > use strict; > use warnings; > no warnings 'uninitialized'; > use CGI qw(:standard); > use CGI::Carp qw(fatalsToBrowser warningsToBrowser); > > Lembrando que este foi o trecho do codigo que esta o erro, as declarações > my estão em trechos anteriores ao erro mencionado, por este motivo não > aparecem. Tenho o costume de declarar as variaveis ANTES de utiliza-las, > justamente para nao ficar procurando depois. (Epoca do C) > > tipo my ($var1, $var2, $var3...) no bloco em que irei utilizalas. SEMPRE > tabalho com errorlog sem msg alguma, ou terei problemas depois que não > consiguirei achar e resolver. > > Mesmo assim, Obrigado [image: Alegre] > > Ricardo Stock > rica...@stocksistemas.com.br > www.stockssitemas.com.br - Tel/Whatsapp (13)98826-5700 > > *From:* Daniel de Oliveira Mantovani <daniel.oliveira.mantov...@gmail.com> > *Sent:* Monday, November 16, 2015 2:15 PM > *To:* saopaulo...@mail.pm.org > *Subject:* Re: [SP-pm] Salvar Imagem GD > > Bom dia Ricardo, > > Esse seu problema específico é o menor dos seus problemas. O seu código > está dizendo aos script-kiddies a seguinte mensagem: "Por favor, use o meu > servidor como bot.". > > Você sempre, sempre deverá usar open com três argumentos, > open my $file_handle, '>', 'arquivo' or die $!; > Se você não tiver um motivo específico, usa uma variável com o nome do > fila handle. > > (Lucas Moraes)++ > Ricardo, sempre, sempre use as pragmas strict e warnings. Essas pragmas > foram feitas justamente para nos ajudar a não cometer erros como o que você > cometeu. > > > 2015-11-16 9:30 GMT-02:00 Ricardo Stock <ricardost...@bol.com.br>: > >> Bom dia aos amigos. >> >> Galera estou com uma dificuldade ao salvar uma imagem. No código que >> estou fazendo, ao se realizar o cadastro, é automaticamente salvo uma >> imagem com o código de barras do mesmo, afim de não se criar uma imagem a >> ada vez que se visualiza o item. >> >> Porem, a imagem não esta sendo salva corrtamente, pois a mesma não >> abre, indo apenas o nome do arquivo com 0kb. >> >> Este é o trecho do código que estou utilizando >> >> #Crio a imagem utilizando o modulo EAN13 >> my $img = GD::Barcode::EAN13->new($barras); >> >> #Adiciono a extenção, se utilizar o metodo $mg->plot->png >> da erro de execução, não de compilação >> $img= $img . ".png"; >> >> #Abro o diretorio para excrita, o mesmo é criado antes >> open OUT, ">$dir/$id_produto/$img" or die "Erro ao salvar >> a imagem com o codigo de barras $!"; >> binmode OUT; >> print OUT $img || die $!; >> close OUT; >> >> >> Acontece que : >> >> Crio o diretorio para armazenar a imagem, sem problemas, >> Armazeno a imagem padrão sem problemas. >> Ao salvar o imagem com o código de barras, o cadastro é >> feito sem problemas ou erros, mas a imagm nao é salva corretamente. >> >> Quero que no momento do cadastro a imagem com o código de barras seja >> salva afim de se evitar que a mesma seja criada a cada vez que o produto >> seja visto. Alguma ajuda. >> >> Obrigado >> >> >> Ricardo Stock >> rica...@stocksistemas.com.br >> www.stockssitemas.com.br - Tel/Whatsapp (13)98826-5700 >> >> =begin disclaimer >> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >> SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org >> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >> =end disclaimer >> >> > > > -- > Thank you very much! > > -dom > > -- > > Daniel de Oliveira Mantovani > Business Analytic Specialist > Perl Evangelist /Astrophysics hobbyist. > +55 11 9 8538-9897 > XOXO > > ------------------------------ > =begin disclaimer > Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ > SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org > L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> > =end disclaimer > > > =begin disclaimer > Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ > SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org > L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> > =end disclaimer > >
=begin disclaimer Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> =end disclaimer