कार्य । कार्यक्रम में प्रोग्रामिंग भाषा में पर्ल एक सूची है. सूची है
तार और संख्या. आप की जरूरत है पाने के लिए अद्वितीय मानों इस सूची से.
सबसे आसान और सबसे सुविधाजनक तरीका है इस समस्या को हल करने के लिए है का उपयोग करें
समारोह uniq
पुस्तकालय से List::Util
. यहाँ है एक उदाहरण कोड:
▶ Run
use List::Util qw(uniq);
use Data::Dumper;
my @arr = uniq('one', 'one', 'b', 'one', 'b', 4);
print Dumper \@arr;
अगर आप को बचाने के लिए इस पाठ के लिए एक फ़ाइल script.pl
, और फिर निष्पादित कंसोल में perl script.pl
,
यह स्क्रीन पर दिखाई देगा:
$VAR1 = [
'one',
'b',
4
];
समारोह uniq
को बरकरार रखता है आदेश के तत्वों, और यह काम करता है अगर सही ढंग से सूची है undef
.
इस कोड से काम करेंगे पर्ल 5.26. के पूर्व संस्करणों में पर्ल शामिल हैं
संस्करण पुस्तकालय के List::Util
में जो वहाँ रहे हैं कोई समारोह uniq
. तो क्रम में करने के लिए
का उपयोग करने के लिए इस समाधान आप की जरूरत करने के लिए या तो अद्यतन पर्ल या डाल करने के लिए एक और अधिक हाल के संस्करण
पुस्तकालय List::Util
.
यहाँ एक टुकड़ा के उत्पादन perldoc List::Util
समारोह के बारे में uniq
:
uniq
my @subset = uniq @values
*Since version 1.45.*
Filters a list of values to remove subsequent duplicates, as judged by a
DWIM-ish string equality or "undef" test. Preserves the order of unique
elements, and retains the first value of any duplicate set.
my $count = uniq @values
In scalar context, returns the number of elements that would have been
returned as a list.
The "undef" value is treated by this function as distinct from the empty
string, and no warning will be produced. It is left as-is in the
returned list. Subsequent "undef" values are still considered identical
to the first, and will be removed.
सिर्फ लिखने के लिए पर्याप्त एक सरलीकृत संस्करण के समारोह uniq
पुस्तकालय से List::Util
:
▶ Run
use Data::Dumper;
sub uniq {
my (@values) = @_;
my %h = map {$_ => 1} @values;
return keys %h;
}
my @arr = uniq('one', 'one', 'b', 'one', 'b', 4);
print Dumper \@arr;
इस कोड को तुरंत काम करता है के किसी भी संस्करण पर Perl. यहाँ हैं तीन लाइनों से बाद के चरणों uniq
:
लेकिन तुलना समारोह के साथ uniq
पुस्तकालय से List::Util
इस कोड कमियों है: