Jemand zu Hause?Leser: 24
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/usr/bin/perl
use strict;
use warnings;
my $last;
my @values;
my $num;
open FILE, 'test' or die $!;
my @lines = <FILE>;
foreach ( @lines ){
chomp;
print;
}
@values = split "\n", @lines;
$\ = "\n";
print @values;
foreach ( @values ){
print $_;
}
Wie frage ich & perlintro
brian's Leitfaden für jedes Perl-Problem
Wie frage ich & perlintro
brian's Leitfaden für jedes Perl-Problem2011-02-18T12:42:45 pqaber das beantwortet nicht die frage, warum du zeilen, die eh schon nach newlines aufgesplittet sind, nochmal nach newlines splitten willst.
2011-02-18T12:42:45 pqvielleicht beschreibst du einfach ganz genau, was du in welchem fall machen willst, denn dein code ist so relativ unsinnig und lässt für mich schwer eine interpretation zu, was er machen soll, wenn er fertig ist.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
sub data{
my @parts;
my %data;
my $i;
my $x;
my $new;
my $value;
my $key;
my @values;
$\ = "\n";
# parts is key, value + key
@parts = split( /:/, $_[0]);
$new = trim($parts[0]);
for( $i = 1; $i <= $#parts; $i++ ){
# set right key
$key = $new;
@values = split( "\n", $parts[$i]);
# last line is next key
$new = trim( pop @values);
foreach( @values ){
trim( $_ );
print $_;
}
# rest are values
$data{$key} = join( "\n", @values);
}
while ( ($key, $value) = each (%data) ){
#print $key . '=>' . $value;
}
#print %data;
}my $lb = () = $text =~ /(\n)/g;
2011-02-18T13:22:53 lawnmover@Taumarill seh ich das richtig das:
Code (perl): (dl )my $lb = () = $text =~ /(\n)/g;
den $text nach \n durchsucht und dann ein \n in (), also eine Liste geschrieben wird und da $lb = () einen Skalarenkontext hat, hat es danach die Anzahl an Zeilen?
my $lb = ( () = ( $text =~ /(\n)/g ) );
Wie frage ich & perlintro
brian's Leitfaden für jedes Perl-Problem2011-02-18T13:22:53 lawnmoverSchreib grad nen Programm das die Ausgabe von dmidecode parst.
DMI::Decode
Parse::DMIDecode
1 2 3 4 5
my $text = "foo\nbar\nbaz\n"; my $lb = () = $text =~ /(\n)/g; print "$lb\n";
print scalar( @lines ) . "\n";