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 $_;
}
2011-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 ) );
2011-02-18T13:22:53 lawnmoverSchreib grad nen Programm das die Ausgabe von dmidecode parst.
1 2 3 4 5
my $text = "foo\nbar\nbaz\n"; my $lb = () = $text =~ /(\n)/g; print "$lb\n";
print scalar( @lines ) . "\n";