[FR-EN] Pb de hachage dans un module (.pm) / make a hash in a module (.pm)

Discussion in 'Perl Misc' started by Alextophi, Sep 1, 2005.

  1. Alextophi

    Alextophi Guest

    french version

    bonjour,
    je n'arrive pas à faire un hachage dans un module (.pm) avec des
    données provenant d'un script (.pl).
    Le problème vient du fait que le hachage est désorganisé et contient
    le nom du module dans le hachage ! je ne comprends pas comment il est
    là.

    d'avance merci

    Alextophi

    #############################################################################
    english version

    hello,
    I do not manage to make a hash in a module (pm) with data coming from a
    script (pl). The problem comes owing to the fact that hash is
    disorganized and contains the name of the module in hash ! I do not
    include/understand how it is there.

    in advance thank you
    Alextophi

    #############################################################################
    - SCRIPT (test.pl),

    $req1 = Import_contrainte->ajout_contrainte2(
    'nom' => "Paul",
    'id' => "008",
    'col' => "g2"
    );


    - MODULE (Import_comtrainte.pm),

    sub ajout_contrainte2 {

    my %hash = (@_);
    my ($cle, $valeur);

    foreach $cle (sort(keys %hash)) {
    print $cle, '=', $hash{$cle}, "\n";
    }

    } # fin de fonction


    - Result,

    008=col
    Import_contrainte=nom
    Paul=id
    g2=

    !?!?!?!?!?!?!?!?!
    Alextophi, Sep 1, 2005
    #1
    1. Advertising

  2. Re: [FR-EN] Pb de hachage dans un module (.pm) / make a hash in amodule (.pm)

    Hello Alextophi,

    Alextophi wrote:
    > french version
    >
    > bonjour,
    > je n'arrive pas à faire un hachage dans un module (.pm) avec des
    > données provenant d'un script (.pl).
    > Le problème vient du fait que le hachage est désorganisé et contient
    > le nom du module dans le hachage ! je ne comprends pas comment il est
    > là.
    >
    > d'avance merci
    >
    > Alextophi
    >
    > #############################################################################
    > english version
    >
    > hello,
    > I do not manage to make a hash in a module (pm) with data coming from a
    > script (pl). The problem comes owing to the fact that hash is
    > disorganized and contains the name of the module in hash ! I do not
    > include/understand how it is there.
    >
    > in advance thank you
    > Alextophi
    >
    > #############################################################################
    > - SCRIPT (test.pl),
    >
    > $req1 = Import_contrainte->ajout_contrainte2(
    > 'nom' => "Paul",
    > 'id' => "008",
    > 'col' => "g2"
    > );
    >
    >
    > - MODULE (Import_comtrainte.pm),
    >
    > sub ajout_contrainte2 {
    >
    > my %hash = (@_);
    > my ($cle, $valeur);
    >
    > foreach $cle (sort(keys %hash)) {
    > print $cle, '=', $hash{$cle}, "\n";
    > }
    >
    > } # fin de fonction
    >
    >
    > - Result,
    >
    > 008=col
    > Import_contrainte=nom
    > Paul=id
    > g2=
    >
    > !?!?!?!?!?!?!?!?!
    >


    Try this:
    --------- .pl ------------------
    my $inst = Hello->new();
    $inst->PassHash(
    'nom' => "Paul",
    'id' => "008",
    'col' => "g2"
    );

    -------------.pm -------------------
    sub new
    {
    my $class = shift;
    my $h;
    my $self = {
    AFPDS=>undef ,
    CodePage=>undef,
    resources=>[],
    isError=>0,
    HANDLE=>undef,
    Error=>undef
    };
    bless $self, $class;
    return $self;

    }

    sub PassHash
    {
    my $self = shift;
    my %h = @_;
    my $cle;
    foreach $cle (sort(keys %h)) {
    print $cle, '=', $h{$cle}, "\n";
    }
    }

    You do not pass the package name ($self) to the sub in the .pm:
    Import_contrainte->ajout_contrainte2(..)
    In your case use :
    ajout_contrainte2(
    'nom' => "Paul",
    'id' => "008",
    'col' => "g2"
    );


    regards,
    Reinhard
    Reinhard Pagitsch, Sep 1, 2005
    #2
    1. Advertising

  3. Alextophi

    Alextophi Guest

    Re: Pb de hachage dans un module (.pm) / make a hash in a module (.pm)

    tanks reinhard,
    Alextophi, Sep 1, 2005
    #3
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. oliv
    Replies:
    13
    Views:
    587
    Alex Buell
    Jul 14, 2006
  2. ALLALA
    Replies:
    1
    Views:
    369
    Martin Edwards
    Mar 14, 2011
  3. rp
    Replies:
    1
    Views:
    498
    red floyd
    Nov 10, 2011
  4. Chris
    Replies:
    3
    Views:
    157
    Mick White
    Aug 5, 2004
  5. john.swilting

    better hachage

    john.swilting, Aug 23, 2007, in forum: Perl Misc
    Replies:
    1
    Views:
    75
    Tad McClellan
    Aug 24, 2007
Loading...

Share This Page