Pessoal,
Sobre uma dúvida que ficou pendente da Aula 27: eu dei uma olhada no funcionamento das variáveis de matching ($` , $& e $'), a regra de preenchimento delas em substituições (s///) é idêntica.
Portanto, a ideia da sua solução para o exercício 2 que o professor sugeriu estava correta e havia apenas um problema: ele estava colocando na segunda parte da substituição a variável $`, o que estava incorreto - precisava ser colocada apenas a variável do matching dos espaços, que poderia ser tanto $& quanto $1, esse último se os espaços fossem capturados com ().
A versão com captura:
while (<STDIN>){
chomp;
s/(\s+)$/$1#/;
print $_ . "\n";
}
A versão do professor, corrigida:
while (<STDIN>){
chomp;
s/\s+$/$&#/;
print $_ . "\n";
}
** Uma outra coisa: ficamos na dúvida sobre a avaliação de matchings como este:
if($var =~ /EXPR/){
print "Matched!";
}
Mais precisamente, o que a avaliação de ($var =~ /EXPR/) devolve: ela devolve "1" se ocorre um casamento, e "undef" caso contrário.
[]s,
Forum