[SP-pm] Problemas com Opendir S.O.S

Savio Silva naboa2002 em hotmail.com
Segunda Maio 21 01:19:34 PDT 2007


Putamplexos!Caraca!!! pra enteder essa sua rotina inteiraso daqui uns 3 meses..rsrslembra ainda sou basico...rscomo estou mesmo precisando de ajuda...segui seu conselho
 
> Leia sobre o opendir e readding nas man-pages do Perl:> > perldoc -f opendir
depois de ler e furtar uns pedaços de scripts...rs
montei esse script
 
******************
#!perl #!/usr/bin/perl
opendir my $dir, "img" or die "Problemas ao abrir diretorio: $!";my @fotos = grep { /\.(?:jpg)$/i } readdir $dir; closedir $dir or die "Problemas ao fechar diretorio: $!";$vFotos  = join("|", em fotos);
 
print "Content-type: text/html\n\n";  print "fotos=", $vFotos;
 
**************funciono redonda no meu pc...mas quando jogo no provedor  da zica...
porq? ele nao acha o caminho...
 
opendir my $dir, "img" #nao funciona no provedor nem no meu pc porq? a pasta "img" nao esta dentro da pasta "CGI-BIN"
 
a pasta 
cgi-bin=>    esta dentro Apache2\
portifolio=>  tbm esta dentro Apache2\
/img=>  e uma sub pasta dentro da portifolio
 
opendir(DR,"C:\\Apache2\\portifolio\\img"); #assim funciona no meu PC, so nao sei como seria no provedor..rsrs
 
opendir(DR,"\\portifolio\\img"); #assim tbm funciona no meu PC se dentro da pasta CGI-BIN possuir uma copias das pastas de img, como essas pasta estao fora da CGI_BIN no provedor porq? uso uma outra programação no Flash nao funciona o script em perl...rsrs
????????alguem poderia me ajudar???
preciso que esse opendir entenda o caminho no provedor "usa Linux"...rs
\\portifolio\\img"); 
 
Valeuuuu
 Sávio Padaw Perl -nivel Chewbacca
 
ps"
grep { /\.(?:jpg)$/i } readdir $dir; #caraca adorei essa rotina!!!, demorei muita pra enteder esse if ai dentro mas e muito LOCOOOOOOOOO!!! to gostando desse perl...rsrs



> From: luismottacampos em yahoo.co.uk> Date: Tue, 8 May 2007 09:54:08 +0200> To: saopaulo-pm em mail.pm.org> Subject: Re: [SP-pm] S.O.S> > On May 8, 2007, at 8:33 AM, Daniel Vinciguerra wrote:> > my @teste = system("dir *.jpg");> >> > print("@teste ");> >> > A grosso modo é um exemplo de como poderia ser feito...> > já que não entendi sua pergunta...> >> > Especifique mais oque quer e como está desenvolvendo seu projeto...> > Se possivel mande o codigo em que está com problemas para ficar> > melhor de ser analisado... =)> > > Daniel, de todas as soluções possíveis para o problema, você > escolheu a menos elegante, menos portável, a mais complicada.> > Para usar system(), você precisa garantir que o sistema > operacional do Sávio é conhecido (e, no seu caso, Janelous - argh!). > Depois, sempre que você chama um programa com system(), precisa > lembrar que o programa pode ter problemas para executar e vai setar > um monte de códigos de erro - que precisam ser tratados, ou vão matar > um programador louco. Se você não fizer estas coisas, está pedindo > encrenca, e o Perl vai se vingar de você. ;-)> > Sávio, por favor, se isto é trabalho de escola, eu gostaria de > saber. Não me incomoda nada ajudar pessoas que não sabem perl, mesmo > que seja para trabalho de escola. Mas não vou deixar ninguém sair > daqui se achando espertinho por que fez os "gurus" de Perl da cidade > de São Paulo escreverem o trabalho da faculdade dele.> > Soluções possíveis, elegantes e simples para o seu problema:> > 1. Use File::Find: (o script abaixo foi gerado pelo find2perl, > fácil e simples de usar).> > #! /usr/bin/perl -w> eval 'exec /usr/bin/perl -S $0 ${1+"$@"}'> if 0; #$running_under_some_shell> > use strict;> use File::Find ();> > # for the convenience of &wanted calls, including -eval statements:> use vars qw/*name *dir *prune/;> *name = *File::Find::name;> *dir = *File::Find::dir;> *prune = *File::Find::prune;> > sub wanted {> my ($dev,$ino,$mode,$nlink,$uid,$gid);> > (($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_)) &&> -f _ &&> /^.*\.JPG\z/s> && print("$name\n");> }> > # Traverse desired filesystems> File::Find::find({wanted => \&wanted}, '.');> exit;> __END__> > 2. Use globs:> > my @jpeg_files = glob( '*.JPG' );> > Isto não é recursivo, você precisa fazer outras vezes para listar > os demais diretórios.> > 3. Use opendir e readdir para ler os diretórios, e encontrar os > arquivos que você quer. Isto também não é recursivo, e tem a > desvantagem de precisar de tratamento de erros (diretórios podem dar > problemas ao serem abertos e fechados, é preciso que o programa saiba > o que fazer em caso de problemas. E isto também não lê sub diretórios > recursivamente.> > Leia sobre o opendir e readding nas man-pages do Perl:> > perldoc -f opendir> > perldoc -f readdir> > Espero que isso ajude.> Putamplexos!> --> Luis Motta Campos (a.k.a. Monsieur Champs) is a software engineer,> Perl fanatic evangelist, and amateur {cook, photographer}> > > _______________________________________________> SaoPaulo-pm mailing list> SaoPaulo-pm em pm.org> http://mail.pm.org/mailman/listinfo/saopaulo-pm
_________________________________________________________________
O Windows Live Spaces já chegou! É fácil criar o seu próprio Web site pessoal.
http://spaces.live.com/signup.aspx
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/saopaulo-pm/attachments/20070521/d03954bf/attachment.html 


Mais detalhes sobre a lista de discussão SaoPaulo-pm