Schrift
[thread]7870[/thread]

Net::FTP kleine frage

Leser: 1


<< |< 1 2 >| >> 17 Einträge, 2 Seiten
Mathias
 2006-04-08 21:27
#64589 #64589
User since
2006-03-16
36 Artikel
BenutzerIn
[default_avatar]
Ich schreib zur zeit aus übungs zwecken einen kleinen ftp clienten in Perl/tk, allerdings habe ich da ein kleines problem und zwar weiß ich nicht wie ich an die liste der dateien auf dem server komme.
Ich hab bei cpan ma gesucht da finde ich nur

dir ( [ DIR ] )

Get a directory listing of DIR, or the current directory in long format.
In an array context, returns a list of lines returned from the server. In a scalar context, returns a reference to a list.

aber ich versteh nicht wie ich das jetzt in ne array bekomme.

Vielen dank schon mal im vorraus

gruss mathias
greets =)
Relais
 2006-04-08 22:04
#64590 #64590
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=Mathias,08.04.2006, 19:27]In an array context, returns a list of lines returned from the server.[/quote]
Weißt Du, was ein Array ist? Weißt Du was ein Array-Kontext ist?
Kennst Du perlintro schon?

Code: (dl )
my @verzeichnisinhalt = dir();
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
Mathias
 2006-04-08 22:09
#64591 #64591
User since
2006-03-16
36 Artikel
BenutzerIn
[default_avatar]
ja
nein
nein

aber danke jetzte weiß ich es, ich bin halt noch nicht so lange dabei :(
greets =)
Relais
 2006-04-08 22:58
#64592 #64592
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
Alle Fragen schon beantwortet? Das ging jetzt aber schnell!

Bei neuen Stolpersteinen einfach wieder fragen!
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
Mathias
 2006-04-09 17:34
#64593 #64593
User since
2006-03-16
36 Artikel
BenutzerIn
[default_avatar]
hehe ok

Danke :)
greets =)
lichtkind
 2006-04-09 18:06
#64594 #64594
User since
2004-03-22
5680 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
würdest du den quellcode veröffentlichen? vielleicht wär das was auch für unser wiki zum demonstrieren.
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
Mathias
 2006-04-10 04:46
#64595 #64595
User since
2006-03-16
36 Artikel
BenutzerIn
[default_avatar]
Ja kann ich machen hab den quellcode mal auf
http://bloodscream.bl.funpic.de/tkftp.txt geladen.
Aber wie gesagt ich bin noch anfänger :)
greets =)
lichtkind
 2006-04-10 04:56
#64596 #64596
User since
2004-03-22
5680 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
jeder war mal anfänger, und ist es in vielem anderen ständig, nur lass dir raten mehr leerzeilen einzustreuen(zwischen die subs) auch vielleicht am anfang zwischen use und den variablen init, das macht den quellcode meist lesbarer.\n\n

<!--EDIT|lichtkind|1144631489-->
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
Mathias
 2006-04-10 04:59
#64597 #64597
User since
2006-03-16
36 Artikel
BenutzerIn
[default_avatar]
ok werde ich mir zu herzen nehmen
greets =)
Strat
 2006-04-10 15:28
#64598 #64598
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
ein paar sachen sind mir aufgefallen:
1. ein paar leerzeichen helfen, einen gedankengang vom anderen zu trennen (schrieb eh schon lichtkind)

2. die gueltigkeitsbereiche von my-Variablen immer so klein wie moeglich halten; das spart eine Menge Zeit, weil man vorher nicht ueberpruefen muss, ob man sich vielleicht eine uebergeordnete Variable mit selben Namen veraendert; @content und @server verwendest du ja nur in den subroutinen, also diese Variablen besser in den subroutinen mit my deklarieren.

3. anstelle von
Code: (dl )
1
2
3
4
5
  @inhalt =();
@inhalt = <$verz/*.*>;
for(@inhalt){
$list->insert('end',$_);
}

koenntest du kuerzer und lesbarer schreiben:
Code: (dl )
1
2
3
  # leerzeile
my @inhalt = <$verz/*.*>;
$list->insert('end', @inhalt);

wobei <...> manchmal probleme mit leerzeichen in dateinamen hat; deshalb arbeite ich lieber mit opendir/readdir/closedir:
Code: (dl )
1
2
3
4
5
6
opendir(my $DIR, $verz) or die "Error: couldn't read dir '$verz': $!\n";
my @inhalt = sort
grep { not /^\.\.?$/ } # . und .. ueberspringen
readdir($DIR);
closedir($DIR);
$list->insert('end', @inhalt);


sonst gefaellt's mir gut\n\n

<!--EDIT|Strat|1144668556-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< |< 1 2 >| >> 17 Einträge, 2 Seiten



View all threads created 2006-04-08 21:27.