मैं एक मिटोसाइट सॉफ्टवेयर चलाने की कोशिश कर रहा हूं जो पर्ल में लिखा गया है। मैं पर्ल स्क्रिप्टिंग से बहुत परिचित नहीं हूं, और मुझे निम्न त्रुटि मिलती है:
needLargeMem: trying to allocate 0 bytes (limit: 100000000000)
Use of uninitialized value $elements[6] in pattern match (m//) at MitoSAlt1.1.pl line 221, <CONFIG> line 75.
मुझे लगता है कि मुझे इस टुकड़े में कुछ बदलना है, लेकिन मुझे कोई सुराग नहीं है क्योंकि मैं इसे अच्छी तरह समझ नहीं पा रहा हूं।
sub check_paired{
my $check_paired = 0;
my $path = shift;
my $line = `zcat $path|tail -n 1`;
my @elements = split(/\t/, $line);
$check_paired = 1 if $elements[6]=~m/\/.$/;
return $check_paired;
}
1 उत्तर
"अप्रारंभीकृत" संदेश एक चेतावनी है जिसका अर्थ है कि @elements
सरणी में 7 से कम आइटम हैं। इंडेक्स 6 पर आइटम की जांच करने से पहले आप यह जांच कर उस चेतावनी से बच सकते हैं कि सरणी में कितने आइटम हैं:
sub check_paired{
my $check_paired = 0;
my $path = shift;
my $line = `zcat $path|tail -n 1`;
my @elements = split(/\t/, $line);
if (@elements > 6) {
$check_paired = 1 if $elements[6]=~m/\/.$/;
}
return $check_paired;
}
संबंधित सवाल
नए सवाल
perl
पर्ल एक प्रक्रियात्मक, उच्च-स्तरीय, सामान्य-प्रयोजन, गतिशील प्रोग्रामिंग भाषा है, जिसे नियमित अभिव्यक्ति और स्ट्रिंग पार्स क्षमताओं के मूल समर्थन के लिए जाना जाता है। कृपया सामान्य रूप से पर्ल के बारे में प्रश्नों के लिए इस टैग का उपयोग करें। नई (लेकिन संबंधित) भाषा Raku (पूर्व में "पर्ल 6") से संबंधित चीजों के लिए, कृपया raku टैग का उपयोग करें। अन्य भाषाओं में पर्ल-स्टाइल नियमित अभिव्यक्तियों के लिए, रेगेक्स टैग का उपयोग करें, या, यदि वे पीसीआरई लाइब्रेरी, पीसीआर टैग पर आधारित हैं।
zcat $path | tail -n 1
के आउटपुट में कम से कम 7 टैब सीमांकित फ़ील्ड होने की उम्मीद है। आपके मामले में, 6 या उससे कम हैं।