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

ऑपरेटर x अलग बर्ताव पर निर्भर करता है कैसे यह प्रयोग किया जाता है ।

में अदिश संदर्भ में यह प्रयोग किया जाता है बनाने के लिए एक लाइन के वांछित लंबाई दोहराया अक्षर. हम कह सकते हैं कि इस कथन बनाता है के "गुणा" के तार.

सूची में संदर्भ (और अगर बाएं संकार्य में लिखा है, कोष्ठकों के साथ या का उपयोग कर qw) वह दोहराता है एक तत्व समय की एक निर्दिष्ट संख्या.

यहाँ है एक उदाहरण के ऑपरेटर x में अदिश संदर्भ:

▶ Run
#!/usr/bin/perl

my $str = 'A' x 4;

print $str;

कार्यक्रम प्रदर्शित करेगा एक स्ट्रिंग चार वर्णों से मिलकर 'A': 'AAAA'.

यदि बाएं संकार्य आप कई निर्दिष्ट वर्ण, वे सब हो जाएगा दोहराया:

▶ Run
#!/usr/bin/perl

my $str = 'Abc' x 2;

print $str;

इस उदाहरण प्रदर्शित करता है एक स्ट्रिंग 'AbcAbc'.

उपयोग एक खाली स्ट्रिंग

में अदिश संदर्भ, ऑपरेटर x दोहराता है कि स्ट्रिंग में निर्दिष्ट किया जाता है बाएँ ऑपरेंड के समय की संख्या में निर्दिष्ट सही संकार्य.

यदि आप निर्दिष्ट के रूप में बाएं संकार्य है खाली स्ट्रिंग '', में अदिश संदर्भ के परिणाम हमेशा हो जाएगा एक खाली स्ट्रिंग, की परवाह किए बिना मूल्य की सही संकार्य:

▶ Run
#!/usr/bin/perl

use Data::Dumper;

my $str = '' x 100;

print Dumper $str;

के समापन पर कार्यक्रम में यह देखा जाएगा कि $str में शामिल एक खाली स्ट्रिंग.

वहाँ कोई मतलब नहीं है का उपयोग करने के लिए इस ऑपरेटर में एक अदिश संदर्भ में, खाली स्ट्रिंग.

मूल्य की सही संकार्य

में अदिश संदर्भ में, सही संकार्य के रूप में ऑपरेटर x बताता है कि कैसे कई बार आप की जरूरत है को दोहराने के लिए लाइन में शामिल है कि बाएं संकार्य. मामले में अगर संकार्य पूर्णांक एक सकारात्मक है, तो जाहिर है, क्या होता है एक परिणाम के रूप में.

लेकिन संख्या नहीं कर रहे हैं, केवल सकारात्मक ।

  • अगर सही संकार्य संख्या है 0, परिणाम हमेशा एक खाली स्ट्रिंग.
  • अगर सही संकार्य एक नकारात्मक संख्या, परिणाम हमेशा एक खाली स्ट्रिंग.

मामले में, कोड है use warnings;का उपयोग कर, एक नकारात्मक संख्या के रूप में एक सही ऑपरेटर एक चेतावनी प्रदर्शित करेगा. यहाँ का एक उदाहरण है एक स्क्रिप्ट को प्रदर्शित करता है कि एक स्ट्रिंग 'Negative repeat count does nothing at script.pl line 5.'.

▶ Run
#!/usr/bin/perl

use warnings;

my $str = 'a' x -3;

print $str;

अगर सही संकार्य एक सकारात्मक संख्या के साथ एक आंशिक भाग के लिए, इस आंशिक भाग है बस खारिज कर दिया है । परिणाम 'A' x 2.1 वास्तव में हो जाएगा के रूप में एक ही 'A' x 2.99 — लाइन 'AA'.

संदर्भ सूची

सूची में संदर्भ, ऑपरेटर x को दोहराता है, तत्व है. लेकिन इसके अलावा कि आप आप की जरूरत है एक सूची के संदर्भ के साथ, आप की जरूरत है भी को समायोजित करने के लिए बाएँ ऑपरेंड के रूप में कोष्ठकों. नीचे दिए गए कोड को पैदा करेगा एक सरणी @arr में शामिल है जो 3 तत्वों, प्रत्येक तत्व एक स्ट्रिंग है 'a':

▶ Run
#!/usr/bin/perl

use Data::Dumper;

my @arr = ('a') x 3;

print Dumper \@arr;

लेकिन अगर आप निर्दिष्ट नहीं करते हैं, कोष्ठक में बाएं संकार्य, और लिखने के लिए my @arr = 'a' x 3;, सरणी @arrहो जाएगा केवल एक आइटम, स्ट्रिंग 'aaa'.

इसके अलावा, सरल करने के लिए कोष्ठक का उपयोग कर सकते हैं ऑपरेटर qw:

▶ Run
#!/usr/bin/perl

use Data::Dumper;

my @arr = qw(abc def) x 2;

print Dumper \@arr;

जब आप इस कोड को चलाने सरणी में @arr होगा 4 तत्वों, स्ट्रिंग 'abc', 'def', 'abc', 'def'.

सरकारी दस्तावेज

यहाँ एक टुकड़ा के उत्पादन perldoc perlop के बारे में ऑपरेटर x:

Multiplicative Operators

...

    Binary "x" is the repetition operator. In scalar context or if the left
    operand is not enclosed in parentheses, it returns a string consisting of
    the left operand repeated the number of times specified by the right
    operand. In list context, if the left operand is enclosed in parentheses
    or is a list formed by "qw/STRING/", it repeats the list. If the right
    operand is zero or negative (raising a warning on negative), it returns an
    empty string or an empty list, depending on the context.

        print '-' x 80;             # print row of dashes

        print "\t" x ($tab/8), ' ' x ($tab%8);      # tab over

        @ones = (1) x 80;           # a list of 80 1's
        @ones = (5) x @ones;        # set all elements to 5

अन्य लेख