PHP, Java, JavaScript, XML, XHTML, HTML, CSS, ASP, Delphi, Assembly, LaTeX, C, UML, Flash, Perl, SQL, Python, Zope, Pascal, WML. Se conhece mais de 3 siglas referidas, este é o forum para si.
Moderadores: Administradores, Moderadores
por andrebarradas » Quarta Mai 19, 2010 13:47
LuisFilipe Escreveu:- Código: Seleccionar todos
my $glob = "*.{$ARGV[1]}";
if ($#ARGV == 2) {$glob = "*.{$ARGV[1]} *.{$ARGV[2]}";}
if ($#ARGV == 3) {$glob = "*.{$ARGV[1]} *.{$ARGV[2]} *.{$ARGV[3]}";}
print " $glob \n";
my @Globarray = glob($glob);
print " @Globarray \n";
pffffffffff

diz-me quantos argumentos podem entrar.pelo que me parece so podem entrar no maximo 4,a directoria e 3 extensoes nao?
-
andrebarradas
- Aprendiz

-
- Mensagens: 56
- Registado: Segunda Dez 28, 2009 15:06
por LuisFilipe » Quarta Mai 19, 2010 15:22
andrebarradas Escreveu:diz-me quantos argumentos podem entrar.pelo que me parece so podem entrar no maximo 4,a directoria e 3 extensoes nao?
Pobre e mal agradecido
Isto funciona o que acho um marco ...
Agora se queres usar um for ou o que seja e ir concatenando aquelas tretas...
e podes sempre aumentar a coisa à bruta ...
- Código: Seleccionar todos
my $glob = "*.{$ARGV[1]}";
if ($#ARGV == 2) {$glob = "*.{$ARGV[1]} *.{$ARGV[2]}";}
if ($#ARGV == 3) {$glob = "*.{$ARGV[1]} *.{$ARGV[2]} *.{$ARGV[3]}";}
if ($#ARGV == 4) {$glob = "*.{$ARGV[1]} *.{$ARGV[2]} *.{$ARGV[3]} *.{$ARGV[4]}";}
if ($#ARGV == 5) {$glob = "*.{$ARGV[1]} *.{$ARGV[2]} *.{$ARGV[3]} *.{$ARGV[4]} *.{$ARGV[5]}";}
if ($#ARGV == 6) {$glob = "*.{$ARGV[1]} *.{$ARGV[2]} *.{$ARGV[3]} *.{$ARGV[4]} *.{$ARGV[5]} *.{$ARGV[6]}";}
print " $glob \n";
my @Globarray = glob($glob);
print " @Globarray \n";
Que nojo

-
LuisFilipe
- Membro Diamante

-
- Mensagens: 1270
- Registado: Domingo Set 04, 2005 22:12
por andrebarradas » Quarta Mai 19, 2010 16:20
LuisFilipe Escreveu:andrebarradas Escreveu:diz-me quantos argumentos podem entrar.pelo que me parece so podem entrar no maximo 4,a directoria e 3 extensoes nao?
Pobre e mal agradecido
Isto funciona o que acho um marco ...
Agora se queres usar um for ou o que seja e ir concatenando aquelas tretas...
e podes sempre aumentar a coisa à bruta ...

- Código: Seleccionar todos
my $glob = "*.{$ARGV[1]}";
if ($#ARGV == 2) {$glob = "*.{$ARGV[1]} *.{$ARGV[2]}";}
if ($#ARGV == 3) {$glob = "*.{$ARGV[1]} *.{$ARGV[2]} *.{$ARGV[3]}";}
if ($#ARGV == 4) {$glob = "*.{$ARGV[1]} *.{$ARGV[2]} *.{$ARGV[3]} *.{$ARGV[4]}";}
if ($#ARGV == 5) {$glob = "*.{$ARGV[1]} *.{$ARGV[2]} *.{$ARGV[3]} *.{$ARGV[4]} *.{$ARGV[5]}";}
if ($#ARGV == 6) {$glob = "*.{$ARGV[1]} *.{$ARGV[2]} *.{$ARGV[3]} *.{$ARGV[4]} *.{$ARGV[5]} *.{$ARGV[6]}";}
print " $glob \n";
my @Globarray = glob($glob);
print " @Globarray \n";
Que nojo

lol não e uma questao de ser pobre e mal agradecido,mas se nao faz nada do que pretendo.se quiser procurar 50 extensoes tou feito lol
-
andrebarradas
- Aprendiz

-
- Mensagens: 56
- Registado: Segunda Dez 28, 2009 15:06
por LuisFilipe » Quinta Mai 20, 2010 1:15
- Código: Seleccionar todos
#!/usr/bin/perl -w
use strict;
#Verificar se entrou pelo menos 2 argumentos
if (@ARGV < 2) {die("Tem de colocar pelo menos2 argumentos(1ºdir,2º e restantes ext)");}
#Verificar se o primeiro argumento é directoria
if (!-d $ARGV[0]) {die("Primeiro argumento tem de ser directoria");}
#construir filtro com a função glob
- Código: Seleccionar todos
my $glob = "*." . join (" *.", @ARGV[1..$#ARGV]);
print "$glob \n";
- Código: Seleccionar todos
my @Globarray = glob($glob);
print " @Globarray \n";
Testado (agora diz obrigado)...
A alteração é só a parte do meio...
Agora copias e apresentas ao professor e não aprendeste nada nem sabes como e onde aprender (assim vai Portugal...)
-
LuisFilipe
- Membro Diamante

-
- Mensagens: 1270
- Registado: Domingo Set 04, 2005 22:12
Voltar para Programação
Quem está ligado:
Utilizadores a ver este Fórum: Nenhum utilizador registado e 0 visitantes