[SP-pm] Closure e Sub Rotina

Daniel de Oliveira Mantovani daniel.oliveira.mantovani at gmail.com
Mon Dec 29 18:19:45 PST 2008


Olha eu estou tentando usar mas retorna:
<erro>

*main::47n

</erro>

Olha o meu código:
<code>

#!usr/bin/perl

use strict;
use warnings;

palavras("a");

#Abre o arquivo para somente leitura
sub dir {

   my $argvs = shift;
   if (defined $argvs) {
    open DIR, "<", $argvs or die "Não foi possível abrir o arquivo\t erro 01
\n$!\n";
    return split(" ", <DIR> );
   }

   else {
    print "Você precisa esclher um arquivo\t erro 02\n";
    return undef;
   }
}

#Filtra as palavras
sub palavras {

   my $regex = shift;
   *palavras = &dir("resposta");
   foreach my $palavra( *palavras ) {
    if ( $palavra =~ qr/$regex/i) {
       print $palavra;
       }
   }
}

</code>

[]s

Obrigado
2008/12/30 Nelson Ferraz <nferraz em gmail.com>

> >> Basta olhar para o lado direito da atribuição.
> >>
> >> *foo = [ 1, 2, 3 ]; # array @foo
> >> *foo = { bar => 'baz' }; # hash %foo
> >> *foo = sub { 'hello world' }; # sub foo()
> >
> > Entendi Nelson, mas agora fiquei empolgado, por exemplo:
> >
> > *foo = [ 1, 2, 3 ]; # array @foo
> >
> > Por que usar * se você pode usar @ ?
>
> Não me lembro de ter precisado manipular a tabela de símbolos para
> modificar escalares, array, ou hashes.
>
> Uso este recurso apenas eventualmente, para instalar ou sobrescrever
> subrotinas ( como no exemplo *foo = sub { ... } ). Isso é bastante
> útil.
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>



-- 
http://mantovanihouse.blogspot.com/

-------(\_------------_/)-----------
-------)--(----------)--(-----------
------(----(---------)----)----------
-------)----(-------)----(-----------
-------(----(-------)----)-----------
--------\_-(\\.---.//)-_/------------
----------\)' -8--8- '(/--------------
-----------/------------\---------------
----------(--)--------(--)--------------
------------(_c__c_)----------------
----------------------------------------
-------------- Pr?xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20081230/bb68890a/attachment.html>


More information about the SaoPaulo-pm mailing list