<br>Pois é Luis..:D<br>Fiz assim entao:<br>como sugeriu o amigo : mkpath("$dir") unless( -d "$dir");<br>rapido e esta sendo eficiente :D<br><br><br>Obrigada pelas dicas.. ai vem outra perg.. :)<br><b><i>Luis Motta Campos <luismottacampos@yahoo.co.uk></i></b> escreveu:<blockquote class="replbq" style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;"> On May 8, 2007, at 6:57 PM, Patty Silva wrote:<br>> Ola Pessoal..<br>> Estou gerando uns arquivos e quero grava-los em diretorios com o <br>> ano mes e dia (algo organizado), estou fazendo:<br>> ex:<br>><br>> my $date = '20030512';<br>> my ($year,$month,$day) = $date =~ /^(\d{4})(\d{2})(\d{2})$/;<br>><br>> mkdir $year unless -d $year;<br>> mkdir "$year/$month" unless -d "$year/$month";<br>> mkdir "$year/$month/$day" unless -d "$year/$month/$day";<br>><br>> Tem outra maneira?<br>> Outra coisa... tenho que verificar se ja existe para nao criar de
<br>> novo..<br><br> Aarrggghh!!<br> Patty, depois de tanto tempo, você já deveria saber que tem sempre <br>mais de uma maneira... ;-)<br> E você tem um talento fantástico para escolher sempre as mais <br>feias, deselegantes e desajeitadas...<br><br> Aqui:<br><br> #!perl<br> use strict;<br> use warnings;<br> use DateTime;<br><br> sub create_directory {<br> my $path = shift;<br> return if -d $path;<br> mkdir $path;<br> }<br><br> sub create_year_directory {<br> my ( $basedir, $path ) = @_;<br> return unless $year =~ m{^\d+$};<br> my $path = qq{$basedir/$year};<br> create_directory( $path );<br> }<br><br> sub create_month_directory {<br> my ( $basedir, $year, $month ) = @_;<br> return unless $month =~ m{^(:?0[0-9]|1[012])$};<br> create_year_directory( $basedir, $year );<br> my $path = qq{$basedir/$year/$month};<br> create_directory( $path );<br> }<br><br> sub create_day_directory
{<br> my ( $basedir, $year, $month, $day ) = @_;<br> return unless $day =~ m{^(:?[012]\d|3[01])};<br> create_month_directory( $basedir, $year, $month );<br> my $path = qq{$basedir/$year/$month/$day};<br> create_directory( $path );<br> }<br><br> # BASEDIR é o lugar onde você vai construir esta "árvore" de <br>diretórios.<br> my $basedir = '/opt/data';<br><br> # Crie datas facilmente com o DateTime:<br> my $today = DateTime->now( time_zone => 'America/Sao_Paulo' )- <br> >truncate( to => 'day' );<br> # Construa seus diretórios facilmente com uma única chamada:<br> create_day_directory $basedir, $today->year, $today->month, $today- <br> >day;<br><br> É tudo. Não testei!<br> Putamplexos!<br>--<br>Luis Motta Campos (a.k.a. Monsieur Champs) is a software engineer,<br>Perl fanatic evangelist, and amateur {cook, photographer}<br><br><br><br>_______________________________________________<br>Cascavel-pm mailing
list<br>Cascavel-pm@pm.org<br>http://mail.pm.org/mailman/listinfo/cascavel-pm<br></blockquote><br><p> __________________________________________________<br>Fale com seus amigos de graça com o novo Yahoo! Messenger <br>http://br.messenger.yahoo.com/