Schrift
[thread]8001[/thread]

Probleme mit Inkrementierung (Seite 2)



<< |< 1 2 >| >> 19 Einträge, 2 Seiten
Ronnie
 2006-05-21 15:38
#66374 #66374
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
[quote=nikster77,21.05.2006, 13:21]Aber wie schreibe ich jede Zeile in ein eigenes Array?[/quote]
schau dir nochmal genau das Beispiel von pq an! Ansonsten würde ich die Verwendung von CPAN:Tie::File und grep empfehlen.

EDIT:
Evtl. hilft dir ja auch das hier:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/perl

use strict;
use warnings;

use Data::Dumper;

my @filtered;
/^hallo/i and chomp and push @filtered, [$., $_] while (<DATA>);
die Dumper \@filtered;

__DATA__
wgoiugwbuog
Hallo Welt
buwgug
fqwgiigop
hallo echo
Hallo Otto
wggoiw
wgoo
\n\n

<!--EDIT|Ronnie|1148212013-->
pq
 2006-05-21 16:29
#66375 #66375
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
[quote=nikster77,21.05.2006, 12:25]
Quote
man kann sowas in perl sogar machen, aber so ziemlich jeder halbwegs
erfahrene programmierer wird dir davon abraten. macht nur ärger.

Kannst du mir bitte verraten wie?[/quote]
es gibt da so eine richtlinie, die ich sehr sinnvoll finde - man benutzt
symbolische referenzen erst dann, wenn man verstanden hat, wie sie
funktionieren und wenn man das jemand anderem erklären kann.

genauso kann man erst dann sagen "ich benutze kein strict", wenn man
verstanden hat, wie es arbeitet, welche vorteile es bringt und welche nachteile.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
pq
 2006-05-21 16:36
#66376 #66376
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
[quote=nikster77,21.05.2006, 03:36]Hmm.. es ist mir ziemlich egal ob es $text1 oder $text[1] oder $text.1 ist...[/quote]

[quote=nikster77,21.05.2006, 12:25]Aber ob es jetzt schlechter Stil ist oder nicht... ich haette, ganz unabhaengig von der jetzigen Problemstellung, gerne die Moeglichkeit Variablen mit laufenden Nummern am Ende zu erzeugen.[/quote]
du solltest dich mal entscheiden. und zwar für $text[1]
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
nikster77
 2006-05-21 17:10
#66377 #66377
User since
2006-02-08
26 Artikel
BenutzerIn
[default_avatar]
Hallo PQ.
Ich hab dein Beispiel jetzt verstanden... :>

Es funktioniert. Danke!

Koennte ich auch mehrere der einzelnen Variablen ausgeben?
also sowas wie:
print "$lines[0]->[3][4]\n";\n\n

<!--EDIT|nikster77|1148217228-->
renee
 2006-05-21 17:28
#66378 #66378
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Was meinst Du "mehrere der einzelnen Variablen"??

Vielleicht das hier:
Code: (dl )
print $lines[0]->[3],"\n",$lines[0]->[4];
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
betterworld
 2006-05-21 17:53
#66379 #66379
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
Oder so:
Code: (dl )
print "@{$lines[0]}[3, 4]\n";

Hierbei handelt es sich um ein Array-Slice wie in @a[0,1,2]. Um auf einzelne Argumente zuzugreifen, soll man aber trotzdem $ statt @ verwenden ($a[0]), und man kann die Pfeilschreibweise benutzen ($lines[0]->[3]).

Man kann die Pfeile uebrigens auch weglassen, dann werden sie implizit eingesetzt:
Code: (dl )
1
2
3
print $lines[0][3], "\n";
# dasselbe wie:
print $lines[0]->[3], "\n";


Wenn Dich mein Posting verwirrt, vergiss es einfach...\n\n

<!--EDIT|betterworld|1148219679-->
pq
 2006-05-21 17:55
#66380 #66380
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
[quote=nikster77,21.05.2006, 15:10]Koennte ich auch mehrere der einzelnen Variablen ausgeben?
also sowas wie:
print "$lines[0]->[3][4]\n";[/quote]
klar: print "@{ $lines[0] }[3..4]\n";
lies einfach mal ein paar perldocs, um das besser zu verstehen,
perllol, perlreftut, perlref, perldsc
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
nikster77
 2006-05-21 19:13
#66381 #66381
User since
2006-02-08
26 Artikel
BenutzerIn
[default_avatar]
Super, Danke :)

Ich hab einen Haufen Perlbuecher hier aber leider meistens nicht die Zeit drin zu lesen (ich brauche es auch einfach zu selten).

Aber heute brauche ich es wohl noch oefter... ;)
GwenDragon
 2006-05-21 20:25
#66382 #66382
User since
2005-01-17
14835 Artikel
Admin1
[Homepage]
user image
[quote=nikster77,21.05.2006, 17:13]Ich hab einen Haufen Perlbuecher hier aber leider meistens nicht die Zeit drin zu lesen (ich brauche es auch einfach zu selten).[/quote]
Also ich verwende sie gern, die dicken Bücher von O'Reilly.
Der erste Blick wandert bei mir da rein und dann erst nach dem Googlen und Nichtfündigwerden hier ins Forum.

In so manchem Perl-Kochbuch sind nützliche Tipps drin ;)
<< |< 1 2 >| >> 19 Einträge, 2 Seiten



View all threads created 2006-05-21 03:58.