Perl'de tek bir değişkende çok fazla satırım var.Perl'de değişkenten okuma
Bu satırları <> işleci kullanarak okumak mümkün olup olmadığını bilmek istiyorum.
Perl'de tek bir değişkende çok fazla satırım var.Perl'de değişkenten okuma
Bu satırları <> işleci kullanarak okumak mümkün olup olmadığını bilmek istiyorum.
Evet. perldoc -f open
'da belgelendiği gibi, dosya elemelerini skaler değişkenlere açabilirsiniz.
my $data = <<'';
line1
line2
line3
open my $fh, '<', \$data;
while (<$fh>) {
chomp;
print "[[ $_ ]]\n";
}
# prints
# [[ line1 ]]
# [[ line2 ]]
# [[ line3 ]]
Gerçekten yapmanız gerekiyorsa, bir dosya tanıtıcısı açabilirsiniz. Zaten yine hafızada şeyler var ise
use strict;
use warnings;
my $lines = "one\ntwo\nthree";
open my $fh, "<", \$lines;
while(<$fh>) {
print "line $.: $_";
}
Alternatif olarak, sadece bir dizi içerisine bölünmüş olabilir:
my @lines = split /\n/, $lines; # or whatever
foreach my $line(@lines) {
# do stuff
}
muhtemelen okumak ve çizgi aşağı korumak için daha kolay olurdu bu.
Ben,
o < > kullanmayan bir faydalı bir alternatif buldum ama
for (split /^/, $lines) {
...
}
Bunu yapmanın olası bir nedeni açık ARGV 'ait hiledir yaptıysam olarak çalışmaktadır '<', \ $ default_data @ ARGV'sini okuyorsa, '<' 'dosyaları aktarılmadığı sürece varsayılan verileri kullanır. –