क्या प्रत्येक तत्व के बीच अल्पविराम के साथ एक पर्ल सरणी को प्रिंट करने का एक आसान तरीका है?
यह करने के लिए एक लूप के लिए लिखना बहुत आसान है, लेकिन बहुत सुरुचिपूर्ण नहीं है .... अगर यह समझ में आता है।
क्या प्रत्येक तत्व के बीच अल्पविराम के साथ एक पर्ल सरणी को प्रिंट करने का एक आसान तरीका है?
यह करने के लिए एक लूप के लिए लिखना बहुत आसान है, लेकिन बहुत सुरुचिपूर्ण नहीं है .... अगर यह समझ में आता है।
जवाबों:
बस उपयोग करें join()
:
# assuming @array is your array:
print join(", ", @array);
print "current directory contains " . join(', ', <*>) . "\n";
आप उपयोग कर सकते हैं Data::Dump
:
use Data::Dump qw(dump);
my @a = (1, [2, 3], {4 => 5});
dump(@a);
पैदा करता है:
"(1, [2, 3], { 4 => 5 })"
यदि आप उस तरह की स्पष्टता के लिए कोडिंग कर रहे हैं, जो किसी ऐसे व्यक्ति द्वारा समझी जाएगी, जो अभी पर्ल के साथ शुरुआत कर रहा है, तो पारंपरिक इस निर्माण का कहना है कि इसका क्या अर्थ है, उच्च स्तर की स्पष्टता और सुगमता के साथ:
$string = join ', ', @array;
print "$string\n";
इस निर्माण में प्रलेखित है perldoc -f
join
।
हालांकि, मैंने हमेशा यह पसंद किया है कि $,
यह कितना सरल है। विशेष चर $"
प्रक्षेप के लिए है, और विशेष चर $,
सूचियों के लिए है। local
पूरे स्क्रिप्ट में रिपल इफेक्ट्स से बचने के लिए डायनेमिक स्कोप-विवशता के साथ किसी एक को मिलाएं :
use 5.012_002;
use strict;
use warnings;
my @array = qw/ 1 2 3 4 5 /;
{
local $" = ', ';
print "@array\n"; # Interpolation.
}
या $ के साथ:
use feature q(say);
use strict;
use warnings;
my @array = qw/ 1 2 3 4 5 /;
{
local $, = ', ';
say @array; # List
}
विशेष चर $,
और perlvar$"
में प्रलेखित हैं । local
कीवर्ड, और कैसे यह एक वैश्विक विराम चिह्न वेरिएबल का मान बदलने के प्रभाव विवश करने के लिए इस्तेमाल किया जा सकता शायद सबसे अच्छा में वर्णन किया गया perlsub ।
का आनंद लें!
इसके अलावा, आप डेटा :: डम्पर आज़माना चाह सकते हैं । उदाहरण:
use Data::Dumper;
# simple procedural interface
print Dumper($foo, $bar);
pelrdoc perlmodlib
।
निरीक्षण / डिबगिंग के लिए Data::Printer
मॉड्यूल की जाँच करें । यह केवल एक काम और एक काम करने के लिए है:
स्क्रीन पर पर्ल वैरिएबल और ऑब्जेक्ट्स प्रदर्शित करें, ठीक से स्वरूपित (मानव द्वारा निरीक्षण किया जाना)
उदाहरण का उपयोग:
use Data::Printer;
p @array; # no need to pass references
उपरोक्त कोड कुछ इस तरह से (रंगों के साथ) उत्पादन कर सकता है:
[
[0] "a",
[1] "b",
[2] undef,
[3] "c",
]
libdata-printer-perl
पैकेज स्थापित कर सकता है ।
का उपयोग कर Data::Dumper
:
use strict;
use Data::Dumper;
my $GRANTstr = 'SELECT, INSERT, UPDATE, DELETE, LOCK TABLES, EXECUTE, TRIGGER';
$GRANTstr =~ s/, /,/g;
my @GRANTs = split /,/ , $GRANTstr;
print Dumper(@GRANTs) . "===\n\n";
print Dumper(\@GRANTs) . "===\n\n";
print Data::Dumper->Dump([\@GRANTs], [qw(GRANTs)]);
तीन अलग-अलग आउटपुट शैली बनाता है:
$VAR1 = 'SELECT';
$VAR2 = 'INSERT';
$VAR3 = 'UPDATE';
$VAR4 = 'DELETE';
$VAR5 = 'LOCK TABLES';
$VAR6 = 'EXECUTE';
$VAR7 = 'TRIGGER';
===
$VAR1 = [
'SELECT',
'INSERT',
'UPDATE',
'DELETE',
'LOCK TABLES',
'EXECUTE',
'TRIGGER'
];
===
$GRANTs = [
'SELECT',
'INSERT',
'UPDATE',
'DELETE',
'LOCK TABLES',
'EXECUTE',
'TRIGGER'
];
मानचित्र का उपयोग भी किया जा सकता है, लेकिन कभी-कभी पढ़ने में मुश्किल होती है जब आपके पास बहुत सारी चीजें होती हैं।
map{ print "element $_\n" } @array;
{local $,=', ';print @array}
:।