/ / Lettura dalla variabile in Perl - perl, variabili, input

Lettura dalla variabile in Perl - perl, variabili, input

Ho molte righe memorizzate in una singola variabile in Perl.

Vorrei sapere se è possibile leggere quelle righe usando l'operatore <>.

risposte:

14 per risposta № 1

Se proprio devi, puoi aprire un filehandle.

use strict;
use warnings;

my $lines = "onentwonthree";
open my $fh, "<", $lines;

while( <$fh> ) {
print "line $.: $_";
}

In alternativa, se hai già le cose in memoria, puoi semplicemente dividerle in un array:

my @lines = split /n/, $lines;   # or whatever
foreach my $line( @lines ) {
# do stuff
}

Questo sarebbe probabilmente più facile da leggere e mantenere in linea.


7 per risposta № 2

Sì. Come documentato in perldoc -f open, puoi aprire filehandle a variabili scalari.

my $data = <<"";
line1
line2
line3

open my $fh, "<", $data;
while (<$fh>) {
chomp;
print "[[ $_ ]]n";
}

# prints
# [[ line1 ]]
# [[ line2 ]]
# [[ line3 ]]

0 per risposta № 3

Ho trovato un'alternativa utile,
non usa <> ma funziona come se fosse così

for (split /^/, $lines) {
...
}

http://www.perlmonks.org/?node_id=745018