मैं निराश हूं। ठीक है, तो यह शायद सबसे अधिक मजेदारPerl बग मैंने कभी पाया है। आज भी मैं पर्ल के बारे में नई चीजें सीख रहा हूं। अनिवार्य रूप से, फ्लिप फ्लॉप ऑपरेटर ..
जो रिटर्न झूठी तक दाएँ हाथ की ओर लौटता है झूठी वैश्विक राज्य रखने के (या कि क्या है जब तक बाएं हाथ की ओर सच, और फिर सच रिटर्न मैं मान लें।)क्या पर्ल की फ्लिप-फ्लॉप ऑपरेटर बग है? इसमें वैश्विक स्थिति है, मैं इसे कैसे रीसेट कर सकता हूं?
क्या मैं इसे रीसेट कर सकता हूं (शायद यह पर्ल 4-एस्क्यू के लिए शायद ही कभी अच्छा होगा reset()
)? या, इस ऑपरेटर को सुरक्षित रूप से उपयोग करने का कोई तरीका नहीं है?
मुझे यह भी नहीं देखा गया है (वैश्विक संदर्भ बिट) perldoc perlop
में कहीं भी दस्तावेज है क्या यह एक गलती है?
कोड
use feature ':5.10';
use strict;
use warnings;
sub search {
my $arr = shift;
grep { !(/start/ .. /never_exist/) } @$arr;
}
my @foo = qw/foo bar start baz end quz quz/;
my @bar = qw/foo bar start baz end quz quz/;
say 'first shot - foo';
say for search \@foo;
say 'second shot - bar';
say for search \@bar;
बिगाड़ने
$ perl test.pl
first shot
foo
bar
second shot
अच्छा सवाल! ऐसा लगता है कि यह बंद होने की तरह अभिनय करता है। – Demosthenex
ओह मुझे यह सामना करना पड़ा - मैंने फ्लिपफ्लोप का उपयोग करके एक फ़ंक्शन लिखा, जिसे इसे दो बार कहा जाता है और दूसरी बार इसे पहले से संरक्षित किया गया था। मेरा ऐप तोड़ दिया! –
वाह, मुझे कभी भी 'रीसेट' अस्तित्व में नहीं पता था। ++ बस इसके लिए। :) – friedo