Module Perl Appels de Méthode: ne Peut pas appeler la méthode “X” sur une valeur non définie sur ${UNFICHIER} ligne ${SOMELINE}

Tous sur la place, en particulier dans DBI, je vois ce message tout le temps. C'est déroutant, car la première chose qui vient à l'esprit est que les arguments que je suis de passage de la fonction sont mis en place par le fnud (ou quelque chose de similaire), mais c'est clairement pas le cas.

Donné un module et un script correspondant...

Module: ./lib/My/Module.pm

package My::Module;

use strict;
use warnings;

sub trim {
    my $str = shift;
    $str =~ s{ \A \s+ }{}xms; # remove space from front of string
    $str =~ s{ \s+ \z }{}xms; # remove space from end of string
    return $str;
}

Script: ./test.pl

#!/usr/bin/perl

use strict;
use warnings;
use My::Module qw(trim);

print $My::Module->trim( " \t hello world\t \t" );

Je serai de retour le message d'erreur

Ne peux pas appeler la méthode "trim" sur une valeur non définie à l' ./text.pl la ligne 7.

Enfaite, si je l'appelle $My::Module->notamethod( "hello world" ); il donne une erreur similaire.

Quel est le problème avec le script ci-dessus/module?

Qu'est-ce que cette erreur Can't call method “X” on an undefined value at ${SOMEFILE} line ${SOMELINE} vraiment en train de dire?
Cela fait référence au contexte de l'appel de la méthode adoptée ici pour imprimer) ou le contexte des arguments?

InformationsquelleAutor heymatthew | 2010-08-30