Zeichenl aus String lesen

Zeichenl aus String lesen

am 03.09.2007 17:16:41 von juergen.brem

Hallo,
ich habe folgendes Problem. Aus einem string $name sollen nur
die letzten 6 Zeichen ausgelesen werden. $name kann verschiedene
längen haben.
Z.B. lswp21261WLS000512 oder lswp212C34000122

Re: Zeichenl aus String lesen

am 03.09.2007 17:22:52 von Christian Winter

Jürgen Brem schrieb:
> Hallo,
> ich habe folgendes Problem. Aus einem string $name sollen nur
> die letzten 6 Zeichen ausgelesen werden. $name kann verschiedene
> längen haben.
> Z.B. lswp21261WLS000512 oder lswp212C34000122

substr() kann auch mit negativen Offsets umgehen.

C:\> perl -e 'my $x="lswp21261WLS000512"; print substr($x,-6),$/'
000512
C:\>

-Christian

Re: Zeichenl aus String lesen

am 03.09.2007 19:14:25 von Ferry Bolhar

Jürgen Brem:

> ich habe folgendes Problem. Aus einem string $name sollen nur
> die letzten 6 Zeichen ausgelesen werden. $name kann verschiedene
> längen haben.
> Z.B. lswp21261WLS000512 oder lswp212C34000122

my $str = 'lswp21261WLS000512';

$str =~ /(.{6})$/;

Die letzten sechs Zeichen findest du dann in $1.

Eine Alternative ist die Verwendung von substr mit einem
negativen Offset:

$sub = substr $str, -6;

LG, Ferry

--
Ing Ferry Bolhar
Magistrat der Stadt Wien - MA 14
A-1010 Wien
E-Mail: bol@adv.magwien.gv.at

Re: Zeichenl aus String lesen

am 06.09.2007 16:38:43 von Trinity Of Matrix

Christian Winter schrieb:
> Jürgen Brem schrieb:
>> Hallo,
>> ich habe folgendes Problem. Aus einem string $name sollen nur
>> die letzten 6 Zeichen ausgelesen werden. $name kann verschiedene
>> längen haben.
>> Z.B. lswp21261WLS000512 oder lswp212C34000122
>
> substr() kann auch mit negativen Offsets umgehen.
>
> C:\> perl -e 'my $x="lswp21261WLS000512"; print substr($x,-6),$/'
> 000512
> C:\>
>

Schade das man in Perl nicht Zeichen auch "manuell" lesen kann wie in C
indem man einfach z.B. $x[0] angibt um das erste Zeichen zu lesen oder
z.B. $x[length $x - 1] um das letzte Zeichen zu lesen.

--
Regards,
Trinity Of Matrix
E-Mail (only for spammer): trinity.matrix@localhost.localdomain

Re: Zeichenl aus String lesen

am 06.09.2007 17:01:19 von Moritz Lenz

This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enig5E50ED0E5FE2C6C29F86B1E1
Content-Type: text/plain; charset=ISO-8859-15
Content-Transfer-Encoding: quoted-printable

Hallo,

Trinity Of Matrix wrote:
> Christian Winter schrieb:
>> Jürgen Brem schrieb:
>>> Hallo,
>>> ich habe folgendes Problem. Aus einem string $name sollen nur
>>> die letzten 6 Zeichen ausgelesen werden. $name kann verschiedene
>>> längen haben.
>>> Z.B. lswp21261WLS000512 oder lswp212C34000122
>>=20
>> substr() kann auch mit negativen Offsets umgehen.
>>=20
>> C:\> perl -e 'my $x=3D"lswp21261WLS000512"; print substr($x,-6),$/'
>> 000512
>> C:\>
>>=20
>=20
> Schade das man in Perl nicht Zeichen auch "manuell" lesen kann wie in C=
=20
> indem man einfach z.B. $x[0] angibt um das erste Zeichen zu lesen oder =

> z.B. $x[length $x - 1] um das letzte Zeichen zu lesen.

Das kann man in Perl 6 (wenn es mal fertig wird) recht leicht beheben:

class String is also {
method poscircumfix:<[ ]> (my $index) {
return self.substr($index, 1);
# für Arrays (also string slices
# müsste man das noch ein bisschen erweitern
}
}

Letztendlich ist das ja nur "syntactic sugar".

Grüße,
Moritz

--=20
Moritz Lenz
http://perl-6.de/ http://moritz.faui2k3.org/


--------------enig5E50ED0E5FE2C6C29F86B1E1
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFG4BZDAAkekJBI0yIRAm4RAKCFb9rdRhtcTaZx42j8B9iOuw+CFQCb Bvce
LER3ebCY8OYgAhGjgCnX/FU=
=6EhZ
-----END PGP SIGNATURE-----

--------------enig5E50ED0E5FE2C6C29F86B1E1--

Re: Zeichenl aus String lesen

am 06.09.2007 22:31:40 von Mirco Wahab

Trinity Of Matrix wrote:
> Schade das man in Perl nicht Zeichen auch "manuell" lesen kann wie in C
> indem man einfach z.B. $x[0] angibt um das erste Zeichen zu lesen oder
> z.B. $x[length $x - 1] um das letzte Zeichen zu lesen.

Kann man nicht?

Was ist dann:


my $x = 'lswp21261WLS000512';

my $c = unpack '@2 a', $x; # @offsett / ascii

print $c;


Viele Grüße

M.

Re: Zeichenl aus String lesen

am 06.09.2007 23:59:30 von Slaven Rezic

Trinity Of Matrix writes:

> Christian Winter schrieb:
> > Jürgen Brem schrieb:
> >> Hallo,
> >> ich habe folgendes Problem. Aus einem string $name sollen nur
> >> die letzten 6 Zeichen ausgelesen werden. $name kann verschiedene
> >> längen haben.
> >> Z.B. lswp21261WLS000512 oder lswp212C34000122
> > substr() kann auch mit negativen Offsets umgehen.
> > C:\> perl -e 'my $x="lswp21261WLS000512"; print substr($x,-6),$/'
> > 000512
> > C:\>
> >
>
> Schade das man in Perl nicht Zeichen auch "manuell" lesen kann wie in
> C indem man einfach z.B. $x[0] angibt um das erste Zeichen zu lesen
> oder z.B. $x[length $x - 1] um das letzte Zeichen zu lesen.
>

Eine etwas alberne Möglichkeit:

{
package MyScalar;
use overload '@{}' => sub { [ split //, ${$_[0]} ]};
sub new { my $s = $_[1]; bless \$s, $_[0] }
}
my $bla = MyScalar->new("hallo");
warn $bla->[0];

Schöner wäre es, wenn man noch autoboxing verwenden könnte, aber ich
habe es leider nicht geschafft.

Gruß,
Slaven

--
Slaven Rezic - slaven rezic de

Tk-AppMaster: a perl/Tk module launcher designed for handhelds
http://tk-appmaster.sf.net

Re: Zeichenl aus String lesen

am 07.09.2007 12:40:35 von Trinity Of Matrix

Moritz Lenz schrieb:
> Hallo,
>
> Trinity Of Matrix wrote:
>> Christian Winter schrieb:
>>> Jürgen Brem schrieb:
>>>> Hallo,
>>>> ich habe folgendes Problem. Aus einem string $name sollen nur
>>>> die letzten 6 Zeichen ausgelesen werden. $name kann verschiedene
>>>> längen haben.
>>>> Z.B. lswp21261WLS000512 oder lswp212C34000122
>>> substr() kann auch mit negativen Offsets umgehen.
>>>
>>> C:\> perl -e 'my $x="lswp21261WLS000512"; print substr($x,-6),$/'
>>> 000512
>>> C:\>
>>>
>> Schade das man in Perl nicht Zeichen auch "manuell" lesen kann wie in C
>> indem man einfach z.B. $x[0] angibt um das erste Zeichen zu lesen oder
>> z.B. $x[length $x - 1] um das letzte Zeichen zu lesen.
>
> Das kann man in Perl 6 (wenn es mal fertig wird) recht leicht beheben:
>
> class String is also {
> method poscircumfix:<[ ]> (my $index) {
> return self.substr($index, 1);
> # für Arrays (also string slices
> # müsste man das noch ein bisschen erweitern
> }
> }
>
> Letztendlich ist das ja nur "syntactic sugar".

Interessant,
es wäre aber besser das gleich direkt in Perl 6 zu implementieren damit
man weniger Rechenzeit für Programme braucht die solchen Funktionen
intensiv ausführen.

Da du ja dich in Perl 6 auskennst habe ich noch eine Frage:
Kann man auch in Perl 6 endlich den Zwang immer Blocks zu verwenden
abschalten? Ich hätte gerne das sich die Blocks wie in C verhalten,
d.h. ich darf folgendes schreiben:

if ($x == 3)
meine_funktion();

anstatt:
if ($x == 3)
{ meine_funktion(); }

Grund für diesen Wunsch ist, das ich schreibfaul bin.
Mit der Schreibweise meine_funktion() if ($x == 3); kann ich mich leider
nicht anfreunden weil es für mich so ungewöhnlich aussieht. Schliesslich
heisst es ja in Perl ja auch es gibt immer mehr als eine Möglichkeit das
selbe zu tun.

--
Regards,
Trinity Of Matrix
E-Mail (only for spammer): trinity.matrix@localhost.localdomain

Re: Zeichenl aus String lesen

am 07.09.2007 12:41:06 von Trinity Of Matrix

Mirco Wahab schrieb:
> Trinity Of Matrix wrote:
>> Schade das man in Perl nicht Zeichen auch "manuell" lesen kann wie in
>> C indem man einfach z.B. $x[0] angibt um das erste Zeichen zu lesen
>> oder z.B. $x[length $x - 1] um das letzte Zeichen zu lesen.
>
> Kann man nicht?
>
> Was ist dann:
>
>
> my $x = 'lswp21261WLS000512';
>
> my $c = unpack '@2 a', $x; # @offsett / ascii
>
> print $c;
>

Danke, so eine Funktion habe ich schon immer gesucht. Habe ganz
vergessen das man ja sowas mit unpack machen kann.

--
Regards,
Trinity Of Matrix
E-Mail (only for spammer): trinity.matrix@localhost.localdomain

Re: Zeichenl aus String lesen

am 07.09.2007 12:54:38 von Moritz Lenz

Hallo,

Trinity Of Matrix wrote:
> Moritz Lenz schrieb:
>> Hallo,
>>=20
>> Trinity Of Matrix wrote:
>>> Christian Winter schrieb:
>>>> Jürgen Brem schrieb:
>>>>> Hallo,
>>>>> ich habe folgendes Problem. Aus einem string $name sollen nur
>>>>> die letzten 6 Zeichen ausgelesen werden. $name kann verschiedene
>>>>> längen haben.
>>>>> Z.B. lswp21261WLS000512 oder lswp212C34000122
>>>> substr() kann auch mit negativen Offsets umgehen.
>>>>
>>>> C:\> perl -e 'my $x=3D"lswp21261WLS000512"; print substr($x,-6),$/'
>>>> 000512
>>>> C:\>
>>>>
>>> Schade das man in Perl nicht Zeichen auch "manuell" lesen kann wie in=
C=20
>>> indem man einfach z.B. $x[0] angibt um das erste Zeichen zu lesen ode=
r=20
>>> z.B. $x[length $x - 1] um das letzte Zeichen zu lesen.
>>=20
>> Das kann man in Perl 6 (wenn es mal fertig wird) recht leicht beheben:=

>>=20
>> class String is also {
>> method poscircumfix:<[ ]> (my $index) {
>> return self.substr($index, 1);
>> # für Arrays (also string slices
>> # müsste man das noch ein bisschen erweitern
>> }
>> }
>>=20
>> Letztendlich ist das ja nur "syntactic sugar".
>=20
> Interessant,
> es wäre aber besser das gleich direkt in Perl 6 zu implementieren dam=
it=20
> man weniger Rechenzeit für Programme braucht die solchen Funktionen=20
> intensiv ausführen.

das ist nur eine Frage des Optimizers. Wenn man die Funktionalität sehr=

häufig braucht und auf Performance aus ist, muss man sich auch Fragen,
ob man die richtige Datenstruktur gewählt hat.

> Da du ja dich in Perl 6 auskennst habe ich noch eine Frage:
> Kann man auch in Perl 6 endlich den Zwang immer Blocks zu verwenden=20
> abschalten? Ich hätte gerne das sich die Blocks wie in C verhalten,
> d.h. ich darf folgendes schreiben:
>=20
> if ($x == 3)
> meine_funktion();
>=20
> anstatt:
> if ($x == 3)
> { meine_funktion(); }

Es ist in der Sprache nicht vorgesehen, man kann das relativ leicht
abändern (wobei ich das für keine gute Idee halte):

grammar MyPerl6 is Perl6 {
rule statement_control:if {

{*} #=3D if expr
[ | ] {*} #=3D if block
@ :=3D ( elsif {*} #=3D elsif expr=

[ | ] {*} )* #=3D elsif block
@ :=3D ( else [
| ] {*} )? #=3D else
{*}
}
}

use MyPerl6; # oder so ähnlich.

Dabei muss man einfach all s in der rule durch [ |
] ersetzen

> Grund für diesen Wunsch ist, das ich schreibfaul bin.
> Mit der Schreibweise meine_funktion() if ($x == 3); kann ich mich l=
eider=20
> nicht anfreunden weil es für mich so ungewöhnlich aussieht. Schlies=
slich=20
> heisst es ja in Perl ja auch es gibt immer mehr als eine Möglichkeit =
das=20
> selbe zu tun.

Das heisst ja noch nicht, dass man jedem Weg erlauben muss ;-)

--=20
Moritz Lenz
http://perl-6.de/ http://moritz.faui2k3.org/

Re: Zeichenl aus String lesen

am 07.09.2007 13:17:43 von struebig

Trinity Of Matrix schrieb:
> Da du ja dich in Perl 6 auskennst habe ich noch eine Frage:
> Kann man auch in Perl 6 endlich den Zwang immer Blocks zu verwenden
> abschalten? Ich hätte gerne das sich die Blocks wie in C verhalten,
> d.h. ich darf folgendes schreiben:
>
> if ($x == 3)
> meine_funktion();
>
> anstatt:
> if ($x == 3)
> { meine_funktion(); }
>
> Grund für diesen Wunsch ist, das ich schreibfaul bin.

Das sind natürlich schlagende Argumente. Wir wär's mit:

($x == 3) and meine_funktion();

Struppi.

Re: Zeichenl aus String lesen

am 07.09.2007 13:27:21 von Trinity Of Matrix

Moritz Lenz schrieb:
> Hallo,
>
> Trinity Of Matrix wrote:
>> Moritz Lenz schrieb:
>>> Hallo,
>>>
>>> Trinity Of Matrix wrote:
>>>> Christian Winter schrieb:
>>>>> Jürgen Brem schrieb:
>>>>>> Hallo,
>>>>>> ich habe folgendes Problem. Aus einem string $name sollen nur
>>>>>> die letzten 6 Zeichen ausgelesen werden. $name kann verschiedene
>>>>>> längen haben.
>>>>>> Z.B. lswp21261WLS000512 oder lswp212C34000122
>>>>> substr() kann auch mit negativen Offsets umgehen.
>>>>>
>>>>> C:\> perl -e 'my $x="lswp21261WLS000512"; print substr($x,-6),$/'
>>>>> 000512
>>>>> C:\>
>>>>>
>>>> Schade das man in Perl nicht Zeichen auch "manuell" lesen kann wie in C
>>>> indem man einfach z.B. $x[0] angibt um das erste Zeichen zu lesen oder
>>>> z.B. $x[length $x - 1] um das letzte Zeichen zu lesen.
>>> Das kann man in Perl 6 (wenn es mal fertig wird) recht leicht beheben:
>>>
>>> class String is also {
>>> method poscircumfix:<[ ]> (my $index) {
>>> return self.substr($index, 1);
>>> # für Arrays (also string slices
>>> # müsste man das noch ein bisschen erweitern
>>> }
>>> }
>>>
>>> Letztendlich ist das ja nur "syntactic sugar".
>> Interessant,
>> es wäre aber besser das gleich direkt in Perl 6 zu implementieren damit
>> man weniger Rechenzeit für Programme braucht die solchen Funktionen
>> intensiv ausführen.
>
> das ist nur eine Frage des Optimizers. Wenn man die Funktionalität sehr
> häufig braucht und auf Performance aus ist, muss man sich auch Fragen,
> ob man die richtige Datenstruktur gewählt hat.
>
>> Da du ja dich in Perl 6 auskennst habe ich noch eine Frage:
>> Kann man auch in Perl 6 endlich den Zwang immer Blocks zu verwenden
>> abschalten? Ich hätte gerne das sich die Blocks wie in C verhalten,
>> d.h. ich darf folgendes schreiben:
>>
>> if ($x == 3)
>> meine_funktion();
>>
>> anstatt:
>> if ($x == 3)
>> { meine_funktion(); }
>
> Es ist in der Sprache nicht vorgesehen, man kann das relativ leicht
> abändern (wobei ich das für keine gute Idee halte):
>
> grammar MyPerl6 is Perl6 {
> rule statement_control:if {
>
> {*} #= if expr
> [ | ] {*} #= if block
> @ := ( elsif {*} #= elsif expr
> [ | ] {*} )* #= elsif block
> @ := ( else [
> | ] {*} )? #= else
> {*}
> }
> }
>
> use MyPerl6; # oder so ähnlich.
>
> Dabei muss man einfach all s in der rule durch [ |
> ] ersetzen
>
>> Grund für diesen Wunsch ist, das ich schreibfaul bin.
>> Mit der Schreibweise meine_funktion() if ($x == 3); kann ich mich leider
>> nicht anfreunden weil es für mich so ungewöhnlich aussieht. Schliesslich
>> heisst es ja in Perl ja auch es gibt immer mehr als eine Möglichkeit das
>> selbe zu tun.
>
> Das heisst ja noch nicht, dass man jedem Weg erlauben muss ;-)

Danke für den Tip. Also ich denke schon das man grundsätzlich ALLES
erlauben sollte. Man kann ja per default einstellen so wie es "sinnvoll"
für die meisten erscheint, aber alles sollte offen und konfigurierbar sein.
Da ja sehr viele IT Menschen Perl kritisieren es sei unlesbar verglichen
zu Python, gerade weil man so viel in wenigen Zeilen Code machen kann,
dann denke ich ist es eine gute Idee diese lästigen Klammern
wegzulassen. Schliesslich ist ja der kurze Code vgl. zu anderen
Programmiersprachen einer der besten Funktionalitäten in Perl.

Zu Perl 6 habe ich sonst noch Fragen:
Gibt es für Perl 6 irgendwo eine offizielle Mailing Liste oder Newsgroup?
Wer sind eigentlich die Entwickler die dahinterstehen?

--
Regards,
Trinity Of Matrix
E-Mail (only for spammer): trinity.matrix@localhost.localdomain

Re: Zeichenl aus String lesen

am 07.09.2007 13:33:31 von Trinity Of Matrix

J. Strübig schrieb:
> Trinity Of Matrix schrieb:
>> Da du ja dich in Perl 6 auskennst habe ich noch eine Frage:
>> Kann man auch in Perl 6 endlich den Zwang immer Blocks zu verwenden
>> abschalten? Ich hätte gerne das sich die Blocks wie in C verhalten,
>> d.h. ich darf folgendes schreiben:
>>
>> if ($x == 3)
>> meine_funktion();
>>
>> anstatt:
>> if ($x == 3)
>> { meine_funktion(); }
>>
>> Grund für diesen Wunsch ist, das ich schreibfaul bin.
>
> Das sind natürlich schlagende Argumente. Wir wär's mit:
>
> ($x == 3) and meine_funktion();

Das Problem aus meiner Schreibfaulsicht ist folgendes:
Ich habe folgenden Code Abschnitt:

1: if ($x == 3)
2: {
3: meine_funktion1();
4: meine_funktion2();
5: }

Nun habe ich irgendwas im Code optimiert, und die "meine_funktion1()"
brauche ich nicht mehr.
Also brauche ich nur die Zeile 2, 3 und 5 löschen. Und das geht bei mir
mit Emacs ganz einfach mit CTRL-K. Ich drücke also 3 mal die Taste
CTRL-K + einmal nach unten drücken für die Zeile 5.

Wenn ich aber jetzt die Zeile umschreiben muss als:
($x == 3) and meine_funktion2();

Dann muss ich extra noch Backspace Taste mehrfach benutzen, und noch
dafür sorgen das das alles schön aussieht.
Allerdings kann man anstatt "and" auch "&&" benutzen. Das ist kürzer.
Also mir ist schon klar das das jetzt hier alles übertrieben erscheint,
aber wenn man tausende für tausende Zeilen von Code schreibt, dann ist
man froh über Schreibfaulheit. :-)

--
Regards,
Trinity Of Matrix
E-Mail (only for spammer): trinity.matrix@localhost.localdomain

Perl 6 (was: Re: Zeichenl aus String lesen)

am 07.09.2007 13:42:32 von Moritz Lenz

Trinity Of Matrix wrote:
> Moritz Lenz schrieb:
>> Hallo,
>>=20
>> Trinity Of Matrix wrote:
>>> Da du ja dich in Perl 6 auskennst habe ich noch eine Frage:
>>> Kann man auch in Perl 6 endlich den Zwang immer Blocks zu verwenden=20
>>> abschalten? Ich hätte gerne das sich die Blocks wie in C verhalten,=

>>> d.h. ich darf folgendes schreiben:
>>>
>>> if ($x == 3)
>>> meine_funktion();
>>>
>>> anstatt:
>>> if ($x == 3)
>>> { meine_funktion(); }
>>=20
>> Es ist in der Sprache nicht vorgesehen, man kann das relativ leicht
>> abändern (wobei ich das für keine gute Idee halte):
>>=20
>> grammar MyPerl6 is Perl6 {
>> rule statement_control:if {
>>
>> {*} #=3D if expr
>> [ | ] {*} #=3D if block
>> @ :=3D ( elsif {*} #=3D elsif e=
xpr
>> [ | ] {*} )* #=3D elsif blo=
ck
>> @ :=3D ( else [
>> | ] {*} )? #=3D else
>> {*}
>> }
>> }
>>=20
>> use MyPerl6; # oder so ähnlich.
>>=20
>> Dabei muss man einfach all s in der rule durch [ |
>> ] ersetzen
>>=20
>>> Grund für diesen Wunsch ist, das ich schreibfaul bin.
>>> Mit der Schreibweise meine_funktion() if ($x == 3); kann ich mich=
leider=20
>>> nicht anfreunden weil es für mich so ungewöhnlich aussieht. Schli=
esslich=20
>>> heisst es ja in Perl ja auch es gibt immer mehr als eine Möglichkei=
t das=20
>>> selbe zu tun.
>>=20
>> Das heisst ja noch nicht, dass man jedem Weg erlauben muss ;-)
>=20
> Danke für den Tip. Also ich denke schon das man grundsätzlich ALLES=
=20
> erlauben sollte. Man kann ja per default einstellen so wie es "sinnvoll=
"=20
> für die meisten erscheint, aber alles sollte offen und konfigurierbar=
sein.
> Da ja sehr viele IT Menschen Perl kritisieren es sei unlesbar vergliche=
n=20
> zu Python, gerade weil man so viel in wenigen Zeilen Code machen kann, =

> dann denke ich ist es eine gute Idee diese lästigen Klammern=20
> wegzulassen.

Ich denke, dass die Klammern eher die Lesbarkeit unterstützen, und das
weglassen den Code kryptischer macht. Aber darüber kann man sich sicher=

streiten ;-).

> Schliesslich ist ja der kurze Code vgl. zu anderen=20
> Programmiersprachen einer der besten Funktionalitäten in Perl.
>=20
> Zu Perl 6 habe ich sonst noch Fragen:
> Gibt es für Perl 6 irgendwo eine offizielle Mailing Liste oder Newsgr=
oup?

Aber sicher, es gibt perl6-(announce|compiler|language|users)@perl.org.
Von deutschsprachigen weiß ich bisher nichts (könnte ich auf Anfrage
auch eine aufmachen).
Außerdem gibt es IRC: #perl6 auf irc.freenode.org (offiziell) und
#perl6de auf irc.perl.org (inoffiziell, Deutsch).

> Wer sind eigentlich die Entwickler die dahinterstehen?

Hinter der Spezifikation steht vor allem Larry Wall, Damian Conway für
den POD-Dialekt als Maintainer, ursprüngliche Autoren sind zustzlich
noch Allison Randal, Luke Palmer und Rod Adams.

Bei den Implementierungen wären zu nennen:
pugs: Audrey Tang,
kp6: Flavio S. Glock
perl6 on parrot: Patrick Michaud

sowie viele anderen.

Noch ein paar Links zum Abschluss:
http://perlcabal.org/syn/ Offizielle Specs
http://pugscode.org/ Pugs
http://perl-6.de/ Eigenwerbung: deutsche Tutorials und mehr.

Grüße,
Moritz

--=20
Moritz Lenz
http://perl-6.de/ http://moritz.faui2k3.org/

Re: Perl 6

am 07.09.2007 15:08:24 von Trinity Of Matrix

Moritz Lenz schrieb:
> Trinity Of Matrix wrote:
>> Moritz Lenz schrieb:
>>> Hallo,
>>>
>>> Trinity Of Matrix wrote:
>>>> Da du ja dich in Perl 6 auskennst habe ich noch eine Frage:
>>>> Kann man auch in Perl 6 endlich den Zwang immer Blocks zu verwenden
>>>> abschalten? Ich hätte gerne das sich die Blocks wie in C verhalten,
>>>> d.h. ich darf folgendes schreiben:
>>>>
>>>> if ($x == 3)
>>>> meine_funktion();
>>>>
>>>> anstatt:
>>>> if ($x == 3)
>>>> { meine_funktion(); }
>>> Es ist in der Sprache nicht vorgesehen, man kann das relativ leicht
>>> abändern (wobei ich das für keine gute Idee halte):
>>>
>>> grammar MyPerl6 is Perl6 {
>>> rule statement_control:if {
>>>
>>> {*} #= if expr
>>> [ | ] {*} #= if block
>>> @ := ( elsif {*} #= elsif expr
>>> [ | ] {*} )* #= elsif block
>>> @ := ( else [
>>> | ] {*} )? #= else
>>> {*}
>>> }
>>> }
>>>
>>> use MyPerl6; # oder so ähnlich.
>>>
>>> Dabei muss man einfach all s in der rule durch [ |
>>> ] ersetzen
>>>
>>>> Grund für diesen Wunsch ist, das ich schreibfaul bin.
>>>> Mit der Schreibweise meine_funktion() if ($x == 3); kann ich mich leider
>>>> nicht anfreunden weil es für mich so ungewöhnlich aussieht. Schliesslich
>>>> heisst es ja in Perl ja auch es gibt immer mehr als eine Möglichkeit das
>>>> selbe zu tun.
>>> Das heisst ja noch nicht, dass man jedem Weg erlauben muss ;-)
>> Danke für den Tip. Also ich denke schon das man grundsätzlich ALLES
>> erlauben sollte. Man kann ja per default einstellen so wie es "sinnvoll"
>> für die meisten erscheint, aber alles sollte offen und konfigurierbar sein.
>> Da ja sehr viele IT Menschen Perl kritisieren es sei unlesbar verglichen
>> zu Python, gerade weil man so viel in wenigen Zeilen Code machen kann,
>> dann denke ich ist es eine gute Idee diese lästigen Klammern
>> wegzulassen.
>
> Ich denke, dass die Klammern eher die Lesbarkeit unterstützen, und das
> weglassen den Code kryptischer macht. Aber darüber kann man sich sicher
> streiten ;-).
>
>> Schliesslich ist ja der kurze Code vgl. zu anderen
>> Programmiersprachen einer der besten Funktionalitäten in Perl.
>>
>> Zu Perl 6 habe ich sonst noch Fragen:
>> Gibt es für Perl 6 irgendwo eine offizielle Mailing Liste oder Newsgroup?
>
> Aber sicher, es gibt perl6-(announce|compiler|language|users)@perl.org.
> Von deutschsprachigen weiß ich bisher nichts (könnte ich auf Anfrage
> auch eine aufmachen).
> Außerdem gibt es IRC: #perl6 auf irc.freenode.org (offiziell) und
> #perl6de auf irc.perl.org (inoffiziell, Deutsch).
>
>> Wer sind eigentlich die Entwickler die dahinterstehen?
>
> Hinter der Spezifikation steht vor allem Larry Wall, Damian Conway für
> den POD-Dialekt als Maintainer, ursprüngliche Autoren sind zustzlich
> noch Allison Randal, Luke Palmer und Rod Adams.
>
> Bei den Implementierungen wären zu nennen:
> pugs: Audrey Tang,
> kp6: Flavio S. Glock
> perl6 on parrot: Patrick Michaud
>
> sowie viele anderen.
>
> Noch ein paar Links zum Abschluss:
> http://perlcabal.org/syn/ Offizielle Specs
> http://pugscode.org/ Pugs
> http://perl-6.de/ Eigenwerbung: deutsche Tutorials und mehr.

Vielen Dank!
Ich werde mir das mal genauer anschauen!

--
Regards,
Trinity Of Matrix
E-Mail (only for spammer): trinity.matrix@localhost.localdomain

Re: Zeichenl aus String lesen

am 07.09.2007 20:06:18 von Mirco Wahab

Trinity Of Matrix wrote:
> 1: if ($x == 3)
> 2: {
> 3: meine_funktion1();
> 4: meine_funktion2();
> 5: }
>
> Nun habe ich irgendwas im Code optimiert, und die "meine_funktion1()"
> brauche ich nicht mehr.
> Also brauche ich nur die Zeile 2, 3 und 5 löschen. Und das geht bei mir
> mit Emacs ganz einfach mit CTRL-K. Ich drücke also 3 mal die Taste
> CTRL-K + einmal nach unten drücken für die Zeile 5.


...
my $x = 3;


meine_funktion1()
,meine_funktion2()
,meine_funktion3()
,meine_funktion4()
if $x == 3;


# - - -
sub meine_funktion1 { print "meine_funktion1\n" }
sub meine_funktion2 { print "meine_funktion2\n" }
sub meine_funktion3 { print "meine_funktion3\n" }
sub meine_funktion4 { print "meine_funktion4\n" }

...


Viele Grüße

Mirco

Re: Zeichenl aus String lesen

am 08.09.2007 08:38:46 von hjp-usenet2

On 2007-09-06 20:31, Mirco Wahab wrote:
> Trinity Of Matrix wrote:
>> Schade das man in Perl nicht Zeichen auch "manuell" lesen kann wie in C
>> indem man einfach z.B. $x[0] angibt um das erste Zeichen zu lesen oder
>> z.B. $x[length $x - 1] um das letzte Zeichen zu lesen.
>
> Kann man nicht?
>
> Was ist dann:
>
>
> my $x = 'lswp21261WLS000512';
>
> my $c = unpack '@2 a', $x; # @offsett / ascii
>
> print $c;

Deutlich schwerer zu lesen als

my $x = 'lswp21261WLS000512';

my $c = substr($x, 2, 1);

print $c;

und außerdem ein Zeichen länger :-).

hp


--
_ | Peter J. Holzer | I know I'd be respectful of a pirate
|_|_) | Sysadmin WSR | with an emu on his shoulder.
| | | hjp@hjp.at |
__/ | http://www.hjp.at/ | -- Sam in "Freefall"

Re: Zeichenl aus String lesen

am 08.09.2007 08:57:11 von hjp-usenet2

On 2007-09-07 11:27, Trinity Of Matrix wrote:
> Moritz Lenz schrieb:
>> Trinity Of Matrix wrote:
>>> Grund für diesen Wunsch ist, das ich schreibfaul bin.
>>> Mit der Schreibweise meine_funktion() if ($x == 3); kann ich mich leider
>>> nicht anfreunden weil es für mich so ungewöhnlich aussieht. Schliesslich
>>> heisst es ja in Perl ja auch es gibt immer mehr als eine Möglichkeit das
>>> selbe zu tun.
>>
>> Das heisst ja noch nicht, dass man jedem Weg erlauben muss ;-)
>
> Danke für den Tip. Also ich denke schon das man grundsätzlich ALLES
> erlauben sollte.

Auch:

si xum tum tres aequalitam fac sic meine_funktione cis.

?

Der Code ist ungetestet, sollte aber zumindest ungefähr so
funktionieren. In Perl ist alles erlaubt, inklusive einer vollständigen
Änderung der Grammatik. Allerdings ist die Sprache dann meiner Meinung
nach nicht mehr Perl.

> Man kann ja per default einstellen so wie es "sinnvoll" für die
> meisten erscheint, aber alles sollte offen und konfigurierbar sein.

Für alles, was konfigurierbar sein soll, muss erst mal jemand Code
geschrieben haben. Wenn also "alles" konfigurierbar sein soll, braucht
man unendlich viel Code. Da aber eine endliche Anzahl von Programmierern
in endlicher Zeit nur endlich viel Code produzieren kann und ein
unendlich großes Programm auch auf keiner Festplatte Platz hat, bin ich
nicht der Meinung, dass alles konfigurierbar sein sollte.

(Ok, da kommen wir jetzt natürlich zur Frage, wie man
"Konfiguration" und "Code" unterscheidet, also lassen wir das besser)

hp


--
_ | Peter J. Holzer | I know I'd be respectful of a pirate
|_|_) | Sysadmin WSR | with an emu on his shoulder.
| | | hjp@hjp.at |
__/ | http://www.hjp.at/ | -- Sam in "Freefall"

Re: Zeichenl aus String lesen

am 08.09.2007 09:08:20 von hjp-usenet2

On 2007-09-07 11:33, Trinity Of Matrix wrote:
> J. Strübig schrieb:
>> Trinity Of Matrix schrieb:
>>> Da du ja dich in Perl 6 auskennst habe ich noch eine Frage:
>>> Kann man auch in Perl 6 endlich den Zwang immer Blocks zu verwenden
>>> abschalten? Ich hätte gerne das sich die Blocks wie in C verhalten,
>>> d.h. ich darf folgendes schreiben:
>>>
>>> if ($x == 3)
>>> meine_funktion();
>>>
>>> anstatt:
>>> if ($x == 3)
>>> { meine_funktion(); }
>>>
>>> Grund für diesen Wunsch ist, das ich schreibfaul bin.
>>
>> Das sind natürlich schlagende Argumente. Wir wär's mit:
>>
>> ($x == 3) and meine_funktion();
>
> Das Problem aus meiner Schreibfaulsicht ist folgendes:
> Ich habe folgenden Code Abschnitt:
>
> 1: if ($x == 3)
> 2: {
> 3: meine_funktion1();
> 4: meine_funktion2();
> 5: }
>
> Nun habe ich irgendwas im Code optimiert, und die "meine_funktion1()"
> brauche ich nicht mehr.
> Also brauche ich nur die Zeile 2, 3 und 5 löschen. Und das geht bei mir
> mit Emacs ganz einfach mit CTRL-K. Ich drücke also 3 mal die Taste
> CTRL-K + einmal nach unten drücken für die Zeile 5.

Und später kommst Du drauf, dass Du statt dessen meine_funktion3
aufrufen willst, und schreibst:

1: if ($x == 3)
3: meine_funktion1();
4: meine_funktion3();


Ups!

In C hatten wir daher bei einem Projekt mal die Regel eingeführt, dass
man die Klammern nur weglassen darf, wenn der Zweig in der gleichen
Zeile steht. Also:

if (x == 3) meine_funktion1(); /* erlaubt */

if (x == 3) { /* erlaubt */
meine_funktion1();
}

if (x == 3) /* verboten */
meine_funktion1();



> Wenn ich aber jetzt die Zeile umschreiben muss als:
> ($x == 3) and meine_funktion2();

Du kannst auch einfach die Klammern stehen lassen. Da ersparst Du Dir
sogar zweimal Cntrl-K drücken. Warum kompliziert, wenn's einfach auch geht?

hp


--
_ | Peter J. Holzer | I know I'd be respectful of a pirate
|_|_) | Sysadmin WSR | with an emu on his shoulder.
| | | hjp@hjp.at |
__/ | http://www.hjp.at/ | -- Sam in "Freefall"

Re: Zeichenl aus String lesen

am 11.09.2007 21:15:00 von Ferry Bolhar

"Trinity Of Matrix":

> if ($x == 3)
> meine_funktion();
>
> anstatt:
> if ($x == 3)
> { meine_funktion(); }
>
> Grund für diesen Wunsch ist, das ich schreibfaul bin.

Wegen zwei Anschlägen mehr?

> Mit der Schreibweise meine_funktion() if ($x == 3); kann ich mich leider
> nicht anfreunden weil es für mich so ungewöhnlich aussieht. Schliesslich
> heisst es ja in Perl ja auch es gibt immer mehr als eine Möglichkeit das
> selbe zu tun.

Die gibt es ja - entweder das "if" als Befehl oder als Ergänzung. Dass
du dich damit nicht anfreunden kannst, ist ein (dein?) anderes Problem.
Ein dritter Weg ist übrigens

$x == 3 ? meine_funktion() : undef;

LG, Ferry
--

Re: Zeichenl aus String lesen

am 11.09.2007 21:23:42 von Ferry Bolhar

"Trinity Of Matrix":

> Danke für den Tip. Also ich denke schon das man grundsätzlich ALLES
> erlauben sollte.

Wenn du ALLES erlaubst, wozu brauchst du dann noch eine Sprache,
die nun mal aus formalen Regeln besteht?

Außerdem wird - im Falle von Perl - irgendwann der Parser aus allen
Nähten platzen, Ich bin jetzt oft schon erstaunt, was der alles an Code-
Konstrukten unbeschadet verdaut. :-)

Frag mich jetzt nicht im Detail, aber die geschwungenen Klammern
nach "if" sind notwendig, da das Konstrukt ansonsten nicht mehr
eindeutig geparst werden könnte. Wenn du Zeit und Mut hast,
kannst du dir ja mal den Sourcecode des Perl-Parsers ansehen.

> Da ja sehr viele IT Menschen Perl kritisieren es sei unlesbar verglichen
> zu Python, gerade weil man so viel in wenigen Zeilen Code machen kann,

Man kann fast in jeder Sprache sauberen bzw. leicht lesbaren,
aber auch komplett unlesbaren Code schreiben. Das ist keine
Besonderheit von Perl, wenngleich ich zugebe, dass es durch die
Sigils etwas leichter ist. ;-)

> dann denke ich ist es eine gute Idee diese lästigen Klammern wegzulassen.
> Schliesslich ist ja der kurze Code vgl. zu anderen Programmiersprachen
> einer der besten Funktionalitäten in Perl.

Eben, also was stört dich an dem kurzen und kompakten

myfunc() if $x == 3;

Konstrukt?

LG, Ferry
--

Re: Zeichenl aus String lesen

am 11.09.2007 21:48:28 von Frank Seitz

Ferry Bolhar wrote:

> Frag mich jetzt nicht im Detail, aber die geschwungenen Klammern
> nach "if" sind notwendig, da das Konstrukt ansonsten nicht mehr
> eindeutig geparst werden könnte.

Die Problematik ist als "Dangling Else" bekannt
(http://de.wikipedia.org/wiki/Dangling_Else).
Perl versucht diese durch Klammerzwang zu vermeiden.
Ich finde das ebenso unschön wie der OP, denn eigentlich passt
dies nicht zu Perl, das ansonsten auf Kompaktheit und
Lesbarkeit (u.a. durch erlaubtes Weglassen unnötiger Klammern)
getrimmt ist.

> Eben, also was stört dich an dem kurzen und kompakten
>
> myfunc() if $x == 3;
>
> Konstrukt?

Was machst Du, wenn Du else- oder elsif-Zweige hast?

Grüße
Frank
--
Dipl.-Inform. Frank Seitz; http://www.fseitz.de/
Anwendungen für Ihr Internet und Intranet
Tel: 04103/180301; Fax: -02; Industriestr. 31, 22880 Wedel

Re: Zeichenl aus String lesen

am 12.09.2007 07:06:50 von Helmut Wollmersdorfer

Ferry Bolhar wrote:
> "Trinity Of Matrix":

>> if ($x == 3)
>> meine_funktion();

>> anstatt:
>> if ($x == 3)
>> { meine_funktion(); }

>> Grund für diesen Wunsch ist, das ich schreibfaul bin.

> Wegen zwei Anschlägen mehr?

Für mich sind es 4 Anschläge, weil die Taste ALT-GR jeweils dazukommt.

Ich schreib aber zwecks Eindeutigkeit lieber zuviel Klammern als zuwenig.

> $x == 3 ? meine_funktion() : undef;

Das wäre aber etwas unnatürlich.

Helmut Wollmersdorfer

Re: Zeichenl aus String lesen

am 12.09.2007 07:18:03 von Helmut Wollmersdorfer

Ferry Bolhar wrote:

> Frag mich jetzt nicht im Detail, aber die geschwungenen Klammern
> nach "if" sind notwendig, da das Konstrukt ansonsten nicht mehr
> eindeutig geparst werden könnte. Wenn du Zeit und Mut hast,
> kannst du dir ja mal den Sourcecode des Perl-Parsers ansehen.

Wenn ich mich richtig erinnere, fällt dieser Zwang in Perl6. Dies wird
erkauft mit strengeren Regeln für das Setzen bzw. Weglassen von
Whitespace vor Klammern.

> Eben, also was stört dich an dem kurzen und kompakten

> myfunc() if $x == 3;

> Konstrukt?

Das nachgestellte if sollte laut "Perl Best Practises" nur für einfache
Ablaufsteuerung verwendet werden, also z.B. für solche "Phrasen"

print "irgendwas" if $verbose >= 3;

Das vorangestellte if ist auch insofern natürlicher, weil es dem
zeitlichen Ablauf entspricht.

Helmut Wollmersdorfer

Re: Zeichenl aus String lesen

am 12.09.2007 07:48:49 von Helmut Wollmersdorfer

Frank Seitz wrote:

> Die Problematik ist als "Dangling Else" bekannt
> (http://de.wikipedia.org/wiki/Dangling_Else).
> Perl versucht diese durch Klammerzwang zu vermeiden.
> Ich finde das ebenso unschön wie der OP, denn eigentlich passt
> dies nicht zu Perl, das ansonsten auf Kompaktheit und
> Lesbarkeit (u.a. durch erlaubtes Weglassen unnötiger Klammern)
> getrimmt ist.

Soll meines Wissens in Perl6 auch geändert werden, dafür werden andere
Schreibregeln strenger.

Prinzipiell könnte man argumentieren, dass die natürliche Sprache des
Menschen auch keine Klammern für "Wenn ..., dann ..." kennt, und
trotzdem verstanden wird. Nur trügt hier der Schein, denn so manche
Gesetzestexte mit längeren Schachteltexten sind nichtmehr eindeutig
(seltener "Dangling Else", häufig: mehrdeutige und-oder Verknüpfungen).

>> Eben, also was stört dich an dem kurzen und kompakten

>> myfunc() if $x == 3;

>> Konstrukt?

> Was machst Du, wenn Du else- oder elsif-Zweige hast?

Liesse sich theoretisch genauso schreiben:

myfunc(1) if $x == 3;
myfunc(2) elsif $x == 4;
myfunc(3) else;

Solange das einfach, eindeutig und nicht geschachtelt ist, müsste sich
das parsen lassen. Mir ist es allerdings lieber, wenn möglichst wenig an
perversen Konstrukten erlaubt ist. Es gibt schon zuviel schwer lesbaren
Code. Die kurzfristige Ersparnis von 2 Sekunden beim Weglassen der
Klammern kann bei komplexeren Code zu mehreren Minuten Nachdenken beim
Lesen und noch mehr Aufwand bei der Fehlersuche führen.

Helmut Wollmersdorfer

Re: Zeichenl aus String lesen

am 12.09.2007 11:42:28 von Ferry Bolhar

Frank Seitz:

> > Eben, also was stört dich an dem kurzen und kompakten
> >
> > myfunc() if $x == 3;
> >
> > Konstrukt?
>
> Was machst Du, wenn Du else- oder elsif-Zweige hast?

Was anderes verwenden. :-) Aber else/elsif hatte der OP ja
nicht gepostet, sondern es ging ja nur um Alternativen für

if ($x == 3) {myfunc();}

LG, Ferry

--
Ing Ferry Bolhar
Magistrat der Stadt Wien - MA 14
A-1010 Wien
E-Mail: bol@adv.magwien.gv.at

Re: Zeichenl aus String lesen

am 12.09.2007 11:46:33 von Ferry Bolhar

Helmut Wollmersdorfer:

> Liesse sich theoretisch genauso schreiben:
>
> myfunc(1) if $x == 3;
> myfunc(2) elsif $x == 4;
> myfunc(3) else;

Aber wirklich nur theoretisch. Der Parser wird nicht wirklich
glücklich damit.

> Es gibt schon zuviel schwer lesbaren Code. Die kurzfristige
> Ersparnis von 2 Sekunden beim Weglassen der
> Klammern kann bei komplexeren Code zu mehreren Minuten Nachdenken beim
> Lesen und noch mehr Aufwand bei der Fehlersuche führen.

ACK.

LG, Ferry

--
Ing Ferry Bolhar
Magistrat der Stadt Wien - MA 14
A-1010 Wien
E-Mail: bol@adv.magwien.gv.at

Re: Zeichenl aus String lesen

am 12.09.2007 11:47:53 von Ferry Bolhar

Helmut Wollmersdorfer:

> Das nachgestellte if sollte laut "Perl Best Practises" nur für einfache
> Ablaufsteuerung verwendet werden, also z.B. für solche "Phrasen"
>
> print "irgendwas" if $verbose >= 3;

Na, da fällt doch "if $x == 3" darunter, oder nicht?

LG, Ferry

--
Ing Ferry Bolhar
Magistrat der Stadt Wien - MA 14
A-1010 Wien
E-Mail: bol@adv.magwien.gv.at

Re: Zeichenl aus String lesen

am 12.09.2007 11:53:56 von Ferry Bolhar

"Helmut Wollmersdorfer" :

> > $x == 3 ? meine_funktion() : undef;
>
> Das wäre aber etwas unnatürlich.

Das schon. Aber es funktioniert, ist eine Alternative zu den ver-
pöhnten, nur über die "Alt-Gr" Taste erreichbaren geschwungenen
Klammern, und sogar der zeitlich Ablauf der Anweisungen bliebe
hier erhalten. :-)

Im Ernst: es wäre ganz interessant, ob es überhaupt möglich wäre,
einen Sourcefilter zu schreiben, der die geschwungenen Klammern
an den richtigen Stellen - und nur dort! - einsetzt. Betroffen wären ja
nicht nur "if", sondern auch "unless", "for[each]", "while" und "until".
Vielleicht probier' ich das mal.

LG, Ferry

--
Ing Ferry Bolhar
Magistrat der Stadt Wien - MA 14
A-1010 Wien
E-Mail: bol@adv.magwien.gv.at

Re: Zeichenl aus String lesen

am 12.09.2007 12:33:26 von Till Potinius

On Wed, 12 Sep 2007 11:47:53 +0200, Ferry Bolhar wrote:

>> Das nachgestellte if sollte laut "Perl Best Practises" nur für einfache
>> Ablaufsteuerung verwendet werden, also z.B. für solche "Phrasen"
>>
>> print "irgendwas" if $verbose >= 3;
>
> Na, da fällt doch "if $x == 3" darunter, oder nicht?

Ich vermute mal, ihm ging es mehr um das myfunc() davor.
Aber das ist IMHO auch eine einfache Ablaufsteuerung. Eine komplexe
Ablaufsteuerung wäre ein if mit mehreren elsif-Zweigen oder ähnliches.

Denn
myfunc() if $x == 3;
und
if ($x == 3) {myfunc();}

sollten vom Parser gleich ausgewertet werden.
Mag sein, dass eines davon etwas schneller ist, aber das dürfte minimal
sein.



--
"Die Arznei macht kranke,
die Mathematik traurige und
die Theologie sndhafte Leute."
- Martin Luther

Re: Zeichenl aus String lesen

am 12.09.2007 13:30:27 von Ferry Bolhar

Till Potinius:

> Denn
> myfunc() if $x == 3;
> und
> if ($x == 3) {myfunc();}
>
> sollten vom Parser gleich ausgewertet werden.

Nicht ganz - bei dem zweiten Befehl wird der durch die
geschwungenen Klammern erzwungene neue Scope
berücksichtigt. Der Parser macht aus dem ersten Ausdruck

$x == 3 and myfunc();

und aus dem zweiten

$x == 3 and do {
myfunc();
}

> Mag sein, dass eines davon etwas schneller ist, aber
> das dürfte minimal sein.

Ja, der erste ist schneller, aber das ist wirklich minimal.

LG, Ferry

--
Ing Ferry Bolhar
Magistrat der Stadt Wien - MA 14
A-1010 Wien
E-Mail: bol@adv.magwien.gv.at

Re: Zeichenl aus String lesen

am 14.09.2007 09:24:00 von Frank Seitz

Helmut Wollmersdorfer wrote:
> Frank Seitz wrote:
>>
>>Die Problematik ist als "Dangling Else" bekannt
>>(http://de.wikipedia.org/wiki/Dangling_Else).
>>Perl versucht diese durch Klammerzwang zu vermeiden.
>>Ich finde das ebenso unschön wie der OP, denn eigentlich passt
>>dies nicht zu Perl, das ansonsten auf Kompaktheit und
>>Lesbarkeit (u.a. durch erlaubtes Weglassen unnötiger Klammern)
>>getrimmt ist.
>
> Soll meines Wissens in Perl6 auch geändert werden, dafür werden andere
> Schreibregeln strenger.

Klingt gut.

> Liesse sich theoretisch genauso schreiben:
>
> myfunc(1) if $x == 3;
> myfunc(2) elsif $x == 4;
> myfunc(3) else;

Das sieht nach drei unabhängigen Statements aus.

Grüße
Frank
--
Dipl.-Inform. Frank Seitz; http://www.fseitz.de/
Anwendungen für Ihr Internet und Intranet
Tel: 04103/180301; Fax: -02; Industriestr. 31, 22880 Wedel