पर एक अपरिभाषित मान पर विधि "एक्स" को कॉल नहीं कर सकता है, विशेष रूप से डीबीआई में, मुझे यह संदेश हर समय आता है। यह भ्रमित है, क्योंकि पहली बात यह है कि दिमाग में आने वाली तर्क यह है कि मैं जो फ़ंक्शन पारित कर रहा हूं, वे अनिश्चित (या कुछ समान) पर सेट हैं, लेकिन यह स्पष्ट रूप से मामला नहीं है।
एक मॉड्यूल और एक इसी लिपि को देखते हुए ...
मॉड्यूल: ./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;
}
स्क्रिप्ट: ./test.pl
#!/usr/bin/perl
use strict;
use warnings;
use My::Module qw(trim);
print $My::Module->trim(" \t hello world\t \t");
मैं वापस पाने त्रुटि संदेश
सीए फोन नहीं विधि अगर मैं फोन
$My::Module->notamethod("hello world");
यह एक ऐसी ही त्रुटि देता है ./text.pl लाइन 7.
दरअसल पर एक अपरिभाषित मूल्य पर "ट्रिम",।
उपरोक्त स्क्रिप्ट/मॉड्यूल के साथ क्या गलत है?
क्या त्रुटि Can't call method “X” on an undefined value at ${SOMEFILE} line ${SOMELINE}
वास्तव में कह रही है? क्या यह विधि कॉल (प्रिंट करने के लिए यहां पारित) के संदर्भ का संदर्भ देता है, या तर्कों का संदर्भ?
मैं रेगेक्स लिखते समय उन्हें डालता हूं क्योंकि मुझे टिप्पणियां इनलाइन करना पसंद है :)। मैं बस उदाहरण के लिए उन्हें बाहर ले जाना भूल गया। – heymatthew
@ द डेमन्स एडवोकेट,/एस और एम के पास इनलाइन टिप्पणियों के साथ कुछ लेना देना नहीं है। वह/एक्स है। – cjm