Schrift
[thread]6249[/thread]

Variablen übergeben



<< |< 1 2 3 >| >> 29 Einträge, 3 Seiten
jan10001
 2004-05-11 20:27
#82245 #82245
User since
2003-08-14
962 Artikel
BenutzerIn
[default_avatar]
Was ich schon immer mal wissen wollte, welche Art der Variablenübergabe ist eleganter? (Hintergund: Wir wollen eine modulare Software erstellen, dementsprechend müssen von Programm zu Programm Werte übergebe.)
esskar
 2004-05-11 21:14
#82246 #82246
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
benutze bei mehr als 3 parametern immer einen hash...
oder noch besser, schreib dir ein parameter objekt!
Crian
 2004-05-12 11:31
#82247 #82247
User since
2003-08-04
5871 Artikel
ModeratorIn
[Homepage]
user image
Seh ich nicht so. Aber wenn es zu viele Parameter werden, würde ich das wohl auch machen. Je nach Gefühl, was der Situation angemessen ist.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
sri
 2004-05-12 12:41
#82248 #82248
User since
2004-01-29
828 Artikel
BenutzerIn
[Homepage] [default_avatar]
[quote=jan10001,11.05.2004, 18:27]Was ich schon immer mal wissen wollte, welche Art der Variablenübergabe ist eleganter? (Hintergund: Wir wollen eine modulare Software erstellen, dementsprechend müssen von Programm zu Programm Werte übergebe.)[/quote]
Ich vermute du willst "Inter Process Communication".

siehe: perldoc perlipc
Marcus
 2004-05-12 12:43
#82249 #82249
User since
2004-05-03
18 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich würde auch sagen, das ist von der Situation abhängig.
Ich mache das gerne mit "benannten Parametern", damit steht dann auch im Quelltext des Aufrufers welche Parameter gesetzt wurden.

Gruß Marcus
ptk
 2004-05-12 13:07
#82250 #82250
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Bei mathematischen Funktionen bevorzuge ich die normale Parameteruebergabe. Ansonsten gibt es meistens einen Set von Parametern, die immer uebergeben werden, und einige die optional geliefert werden. Da bevorzuge ich die gemischte Form:
Code: (dl )
1
2
3
4
5
sub foo {
my($param1, $param2, %args) = @_;
...
}
foo("param1", "param2", opt1 => "value1", ...);

Manchmal benutze ich auch den Shell-Stil mithilfe von Getopt::Long:
Code: (dl )
1
2
3
4
5
6
7
sub foo {
local @ARGV = @_;
my %args;
Getopt::Long::GetOptions(%args, "bla=i", "bar=s", ...) or die;
....
}
foo(-bla => 4711, -bar => "...");
sri
 2004-05-12 14:38
#82251 #82251
User since
2004-01-29
828 Artikel
BenutzerIn
[Homepage] [default_avatar]
[quote=ptk,12.05.2004, 11:07]Bei mathematischen Funktionen bevorzuge ich die normale Parameteruebergabe. Ansonsten gibt es meistens einen Set von Parametern, die immer uebergeben werden, und einige die optional geliefert werden. Da bevorzuge ich die gemischte Form:
Code: (dl )
1
2
3
4
5
sub foo {
my($param1, $param2, %args) = @_;
...
}
foo("param1", "param2", opt1 => "value1", ...);

Manchmal benutze ich auch den Shell-Stil mithilfe von Getopt::Long:
Code: (dl )
1
2
3
4
5
6
7
sub foo {
local @ARGV = @_;
my %args;
Getopt::Long::GetOptions(%args, "bla=i", "bar=s", ...) or die;
....
}
foo(-bla => 4711, -bar => "...");
[/quote]
Er sprach von Programmen, nicht Funktionen.
format_c
 2004-05-12 15:01
#82252 #82252
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
[quote=jan10001,11.05.2004, 18:27]Was ich schon immer mal wissen wollte, welche Art der Variablenübergabe ist eleganter? (Hintergund: Wir wollen eine modulare Software erstellen, dementsprechend müssen von Programm zu Programm Werte übergebe.)[/quote]
Kannst du dich vielleicht etwas spezieller ausdrücken?
Sind beide Programme in Perl geschrieben?

Wenn du Modulare software schreiben willst und beide Programme sind in Perl, dann kannst du doch wirklich Modular schreiben oder gleich Objektorientiert. Da OOP ja den Ansatz der Modularität verfolgt.

Gruß Alex
ptk
 2004-05-12 15:04
#82253 #82253
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=sri,12.May.2004, 12:38]Er sprach von Programmen, nicht Funktionen.[/quote]
Ups.

Allerdings, wenn bei es sich um Perl-Skripte handelt, warum nicht gleich als Perl-Module stattdessen schreiben? Man kann es ja auch als hybrides Modul/Skript auslegen, falls einige der Skripte auch Standalone laufen sollen.
Gast Gast
 2004-05-12 18:35
#82254 #82254
Also für die Übergabe von Varibalen-Inhalten an 'Programme' verwende ich entweder persistente Daten/Objekte oder interprozessualen Datenaustausch via pipe.
Mit exec() läßt sich aber auch einiges in dieser Richtung anstellen.
<< |< 1 2 3 >| >> 29 Einträge, 3 Seiten



View all threads created 2004-05-11 20:27.