Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]523[/thread]

ein paar fragen - hilfe :/: njaa perl halt ^^ (Seite 2)



<< |< 1 2 3 4 5 >| >> 47 Einträge, 5 Seiten
Strat
 2005-07-06 19:19
#5179 #5179
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
datei oeffnen:
Code: (dl )
1
2
3
4
my $file = "xyz.txt";
unless (open (FILE, "<", $file)) {
die "Error: can't open file '$file': $!\n";
}

oder:
Code: (dl )
open (FILE, "<", $file) or die "Error: can't open file '$file': $!\n";


den inhalt einer datei kannst du nach dem open folgendermaszen durchlaufen:
Code: (dl )
1
2
3
4
5
while (<FILE>) {
chomp;
# $_ ist die laufvariable, mach was damit

} # while

dazu noch mehr steht auch in meiner "Einfuehrung in Perl", die du auf meiner HP unter Vortraege findest.
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Ronnie
 2005-07-06 19:20
#5180 #5180
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
phaylon hat Recht, es hängt primär davon ab wie deine Textdatei aussieht. Mal ein Beispiel wo alles simpel untereinander steht (würde YAML als Alternative empfehlen):
Code: (dl )
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
#!/usr/bin/perl 

use strict;
use warnings;

use Data::Dumper;

my @persons;
$persons[0] = [];

while(<DATA>) {
chomp;
push @persons, [] and next if /^\s*$/;
push @{$persons[-1]}, $_;
}

#print Dumper \@persons;
print Dumper [grep { $_->[2] eq 'male' } @persons];

_ _DATA_ _
Horst
Mustermann
male

Tina
Mustermann
female

Otto
Mustermann
male

EDIT: Typo fixed\n\n

<!--EDIT|Ronnie|1120665609-->
Derunwissende
 2005-07-06 22:25
#5181 #5181
User since
2005-07-05
20 Artikel
BenutzerIn
[default_avatar]
hui ja das hilft mir nun ..thx ^^

aber ein paar zeichen die ich schon öfters gesehen habe, aber die ich nicht verstehe bzw nicht weiß was sie heißen - vl. kann mir ja da auch noch wer helfen ^^:

@_ <-- was heißt das ?
my $that = shift; <-- was bedeutet hier das 'shift' ?
^ <-- das hab ich auch schon oft gesehn und hab auch kA was das heißen soll

mfg
Ronnie
 2005-07-06 23:05
#5182 #5182
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
[quote=Derunwissende,06.07.2005, 20:25]@_ <-- was heißt das ?
my $that = shift; <-- was bedeutet hier das 'shift' ?
^ <-- das hab ich auch schon oft gesehn und hab auch kA was das heißen soll[/quote]
@_ ist ein Array und enthält alle an eine Funktion übergebenen Parameter.
shift entnimmt einem Array das erste Element, ohne weitere Angabe @_.
^ ist oft das Zeichen für den Zeilenanfang in einem regulären Ausdruck.

Unter http://perldoc.perl.org/index-language.html sind die Bereiche perlvar, perlfunc und perlre als Nachschlagewerk empfohlen.
Derunwissende
 2005-07-07 18:30
#5183 #5183
User since
2005-07-05
20 Artikel
BenutzerIn
[default_avatar]
So, nun nehmen wir mal an ich hab ne textdatei[steht unten ^^] ..und aus dieser textdatei will ich das:
IP-Adresse=123.123.12.1
Subnetzmaske=111.111.111.0
Standardgateway=111.111.1.111

ausgegeben wird ... da muss man doch zuerst zu 'IP-Adresse' "laufen" und dann die punkte bzw den doppelpunkt überspringen bis zu der adresse und dann bis zum ende der zeile..aber wie speichert man das dann in ne variable und gibt es dann aus ? bzw wie kommt man zuerst überhaupst zu 'IP-Adresse' ? und dann wie überlest man die pünktchen >: ? das mit den pünktlein überlesen hab ich schon mit '.*' usw weiter probiert - hat aber nicht funktioniert >: ..naja, vielleicht kann mir wer helfen

mfg


------------------------------------------------------------------------------------------
-------------------------

Windows-IP-Konfiguration


Ethernetadapter Drahtlose Netzwerkverbindung 2:

Verbindungsspezifisches DNS-Suffix:
IP-Adresse. . . . . . . . . . . . : 123.123.12.1
Subnetzmaske. . . . . . . . . . . : 111.111.111.0
Standardgateway . . . . . . . . . : 111.111.1.111

Ethernetadapter LAN-Verbindung:

Medienstatus. . . . . . . . . . . : Es besteht keine Verbindung
Ronnie
 2005-07-07 19:08
#5184 #5184
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Im Prinzip sind die wichtigsten Informationen alle hier versammelt. Mach einen Entwurf, zeig uns wo es hängt und wir helfen dir weiter!
Derunwissende
 2005-07-07 20:03
#5185 #5185
User since
2005-07-05
20 Artikel
BenutzerIn
[default_avatar]
mh..hab mich heute schon 2-3h gespielt ..im prinzip weiß ich nicht wie ich anfangen soll - ob ich da ne variable anlegen soll, die das durchläuft und wenn ich da ne variable anlegen soll -wie erstellt die dann das '=' und gibt die zahlen aus ?

hmpf
Ronnie
 2005-07-07 20:31
#5186 #5186
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
[quote=Strat,06.07.2005, 17:19]dazu noch mehr steht auch in meiner "Einfuehrung in Perl", die du auf meiner HP unter Vortraege findest.[/quote]
Lies Strats Tutorial, dass eine hervorragende Einführung in Perl in deutscher Sprache ist: http://www.fabiani.net/talks/strat_perl_intro_v0.04.pdf
renee
 2005-07-07 20:35
#5187 #5187
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
1
2
my ($ip) = $line =~ /IP-Adresse\.+((?:\d+\.)+\d+)/;
print $ip;
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/
Derunwissende
 2005-07-10 16:31
#5188 #5188
User since
2005-07-05
20 Artikel
BenutzerIn
[default_avatar]
[quote=renee,07.July.2005, 18:35][/quote]
so hab das nun mal probiert - hab aber kA wie ich da nen fehler behebn kann und so ^^..eigentlich müsste es mir die Zeile wo die IP-Adresse ausgeben ...gibt aber gar nichts aus ^^! Eigentlich sollte es 'IP-Adresse=123.123.12.1' ausgeben ..aber naja..>:! Eventuell kann ja wer nen anfänger helfen ^^

mfg


Quote
#!/usr/bin/perl -w
use strict;


my $input;
open($input, "<", "Datei.txt") or die "kann Datei.txt nicht lesen: $!\n";

while(<$input>) {
my ($ip) = $line =~ /IP-Adresse\.((?:\d+\.)+\d+)/;
print $ip;


}

close($input);
<< |< 1 2 3 4 5 >| >> 47 Einträge, 5 Seiten



View all threads created 2005-07-05 21:49.