Font
[thread]8213[/thread]

Kein dirktes Problem, nur eine Verständnisfrage



<< >> 5 entries, 1 page
krusty
 2006-08-02 13:59
#68515 #68515
User since
2006-01-27
91 articles
BenutzerIn
[default_avatar]
Hallo zusammen,

habe ein Script von einem Kollegen bekommen. Habe soweit alles verstanden nur die folgende Zeile verstehe ich nicht wirklich. Könnt ihr mir einen Tipp geben, was diese Zeile genau bewirkt?

Code: (dl )
$tmp = join "",$session->cmd($line);


$session -> ist die geöffnete Telnet Session
$line -> ist der Command der aus einer Datei gelesen wird und an die Session übergeben wird.
$tmp -> ist nur eine temporäre Variable, die anschließend übergeben wird.

So wie ich das verstanden habe, wird der Befehl ausgeführt und gleichzeitig das Ergebnis in die Variable $tmp gespeichert. Ist das so korrekt?

Gruß
Ronnie
 2006-08-02 14:05
#68516 #68516
User since
2003-08-14
2022 articles
BenutzerIn
[default_avatar]
Laut CPAN:Net::Telnet ist der Rückgabewert eine Liste (Array) die per join zu einem String zusammengefasst wird, der dann $tmp zugewiesen wird. Deine Annahme ist also richtig.\n\n

<!--EDIT|Ronnie|1154513215-->
sid burn
 2006-08-03 05:25
#68517 #68517
User since
2006-03-29
1520 articles
BenutzerIn

user image
Ich denke mal dein Problem liegt an der Funktion join() ?

Der Funktion join() übergibst du als ersten Parameter sozusagen das Klebezeichen, danach wird eine Liste erwartet. Mehrere Parameter, Arrays etc.

join() hat die Aufgabe jedes Element mit diesem Klebezeichen zusammenzufügen, und gibt dann letztendlich einen String zurück.

In deinem Beispiel wird also als Klebezeichen ein Leerstring benutzt "" und es werden alle Rückgabewerte deines Befehls $session->cmd($line) mit diesem Zeichen zusammengeklebt. Danach wird dieser erzeugte String abgespeichert.

Wenn man anstatt eines Leerstrig z.B. "\n" geschrieben hätte, dann würde jedes Element auf einer Zeile stehen.
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
renee
 2006-08-03 10:36
#68518 #68518
User since
2003-08-04
14371 articles
ModeratorIn
[Homepage] [default_avatar]
[quote=sid burn,03.08.2006, 03:25]Ich denke mal dein Problem liegt an der Funktion join() ?

Der Funktion join() übergibst du als ersten Parameter sozusagen das Klebezeichen, danach wird eine Liste erwartet. Mehrere Parameter, Arrays etc.

join() hat die Aufgabe jedes Element mit diesem Klebezeichen zusammenzufügen, und gibt dann letztendlich einen String zurück.

In deinem Beispiel wird also als Klebezeichen ein Leerstring benutzt "" und es werden alle Rückgabewerte deines Befehls $session->cmd($line) mit diesem Zeichen zusammengeklebt. Danach wird dieser erzeugte String abgespeichert.

Wenn man anstatt eines Leerstrig z.B. "\n" geschrieben hätte, dann würde jedes Element auf einer Zeile stehen.[/quote]
Problem? Es wurde doch gesagt, dass es kein richitges Problem gibt. Die Zeilen werden schon mit einem Zeilenumbruch geliefert, von daher dürfte es mit dem "" kein Problem geben.
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/
sid burn
 2006-08-03 21:00
#68519 #68519
User since
2006-03-29
1520 articles
BenutzerIn

user image
[quote=renee,03.Aug..2006, 08:36]Problem? Es wurde doch gesagt, dass es kein richitges Problem gibt. Die Zeilen werden schon mit einem Zeilenumbruch geliefert, von daher dürfte es mit dem "" kein Problem geben.[/quote]
Mit dem Wort "Problem" meinte ich eher "Verständnisproblem". Daher habe ich join() nochmal ausführlich erklärt.

War das jetzt schlecht? Das mit dem "\n" sollte nur ein Beispiel sein wie die Sachen zusammengeklebt werden, ich hätte dort auch "foo" rein schreiben können.\n\n

<!--EDIT|sid burn|1154624575-->
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
<< >> 5 entries, 1 page



View all threads created 2006-08-02 13:59.