ऑपरेटर -- पर्ल में

डबल शून्य ऑपरेटर में प्रयोग किया जाता है पर्ल को कम करने के लिए एक चर के मूल्य ।

उदाहरण:

▶ Run
#!/usr/bin/perl

my $i = 100;

$i--;

print $i;

प्रोग्राम संख्या को प्रदर्शित करेगा 99.

प्रवेश फार्म

वहाँ रहे हैं दो रूपों की रिकॉर्डिंग: आप निर्दिष्ट कर सकते हैं ऑपरेटर के बाद चर (पोस्टफिक्स संकेतन) को या उससे पहले चर (उपसर्ग संकेतन):

$i--;
--$i;

यदि कमांड है पर एक पंक्ति है, वहाँ के बीच कोई अंतर नहीं उपसर्ग और पोस्टफिक्स संकेतन के. वहाँ एक अंतर है तो केवल ऑपरेटर -- का इस्तेमाल किया जाता है के भाग के रूप में एक टीम. अगर -- के सामने स्थित है चर चर के मूल्य में वृद्धि होगी क्रियान्वित करने से पहले शेष आदेशों. अगर -- के बाद है चर, तो चर के मूल्य में वृद्धि होगी को क्रियान्वित करने के बाद शेष आदेशों.

यहाँ एक उदाहरण है ।

इस कार्यक्रम को प्रदर्शित करता है, संख्या 100 और 99:

▶ Run
#!/usr/bin/perl

use feature qw(say);

my $i = 100;

say $i--;
say $i;

लेकिन इस प्रोग्राम संख्या को प्रदर्शित करेगा 99 दो बार:

▶ Run
#!/usr/bin/perl

use feature qw(say);

my $i = 100;

say --$i;
say $i;

-- पंक्तियों के लिए

है ऑपरेटर ++ वहाँ है, एक विशेष जादू है जब यह लागू करने के लिए एक चर है जो एक स्ट्रिंग है ।

ऑपरेटर -- तो वहाँ कोई जादू नहीं है. स्ट्रिंग में मजबूर एक संख्या है और इस संख्या में से एक घटाना.

यहाँ एक उदाहरण है । प्रोग्राम संख्या प्रदर्शित करता -1

▶ Run
#!/usr/bin/perl

my $str = 'a1';

$str--;

print $str;

यहाँ कुछ उदाहरण हैं जो कर देगा ऑपरेटर -- के साथ स्ट्रिंग एक चर में:

'a' -> -1
'100ABC' -> 99
'0100ABC' -> 99

दुरुपयोग

ऑपरेटर -- कर सकते हैं केवल के लिए इस्तेमाल किया जा चर. यदि आप का उपयोग करने की कोशिश -- चर नहीं है, और के लिए एक सरल संख्या के साथ, यह उत्पन्न होगा एक त्रुटि है. यहाँ है एक उदाहरण के कोड के साथ एक त्रुटि है:

▶ Run
#!/usr/bin/perl

my $i = 100--; # error!

जब आप इस कार्यक्रम को चलाने यह त्रुटि जाएगा:

Can't modify constant item in postdecrement (--) at script.pl line 3, near "100--"
Execution of script.pl aborted due to compilation errors.

इसी तरह, यह नहीं किया जा सकता लागू करने के लिए सरणियों:

▶ Run
#!/usr/bin/perl

my @arr = (1, 2, 3);

@arr--; # error
Can't modify private array in postdecrement (--) at script.pl line 5, near "@arr--"
Execution of script.pl aborted due to compilation errors.

और हैश:

▶ Run
#!/usr/bin/perl

my %h = (
    a => 1,
);

%h--; # error
Can't modify private hash in postdecrement (--) at script.pl line 7, near "%h--"
Execution of script.pl aborted due to compilation errors.

अन्य लेख