Ajuda com perl

jfkpt

Power Member
Ola,

Tenho um programa com as seguintes linhas :

Código:
#!/usr/bin/perl -w

my $tstring = " Item memory (21102626)      : Total: 10000 Used : 4570 Free : 5430";

my $total = ($tstring =~ /Total:\s(\d+)\s/);

print " Total : $total \n";

Acontece que isto apenas está a mandar para o ecrã :

Total : 1


já tentei com \d, com [0-9]+ e não funciona. Apanha sempre "1" apenas :005:

O que é que estou a fazer mal ?
 
30 segundos depois percebi que o 1 era apenas coincidência, pois é "1" no sentido de validar o resultado. Mas eu queria ler aquele grupo !

Como é que posso fazer ?
 
Código:
#!/usr/bin/perl -w

my $tstring = " Item memory (21102626)      : Total: 10000 Used : 4570 Free : 5430";

my [COLOR="Red"][B]([/B][/COLOR]$total[COLOR="Red"][B])[/B][/COLOR] = ($tstring =~ /Total:\s(\d+)\s/);

print " Total : $total \n";

Código:
Total : 10000
 
Código:
#!/usr/bin/perl -w

my $tstring = " Item memory (21102626)      : Total: 10000 Used : 4570 Free : 5430";

my [COLOR="Red"][B]([/B][/COLOR]$total[COLOR="Red"][B])[/B][/COLOR] = ($tstring =~ /Total:\s(\d+)\s/);

print " Total : $total \n";

Código:
Total : 10000


Obrigado ! :x2:

Já agora, podes dar uma explicação sobre os parêntesis ? É que ainda sou muito verdinho nesta linguagem ! :D
 
Back
Topo