Christian Kruse: sich auskennen in Perl

Beitrag lesen

你好 Struppi,

Wie gesagt, bis zur deiner Zustimmung, gab es keine andere Aussage, […]

Es gab also keine Aussage betreffend des Grundes, warum sich hier viele Leute nicht beteiligen. Also interpretierst du einen beliebigen Grund in den Kontext? Interessant.

Wobei ich dann aber nicht erkenne, warum das Forum den Bach runter geht, weil du nicht mehr diskutieren möchtest?

Ich sprach nur exemplarisch von mir.

Whatever. Ich mag nicht mehr darüber diskutieren. Das kostet mich zu viel Energie und Zeit, ich mag nicht mehr darüber diskutieren. Schwamm drüber und vergiss es.

Operatoren überladen geht doch auch mit Perl5.

Nur sehr beschränkt.

Aber meine obige Aussage zielte eher auf so Konstrukte:

use v6;

class Point {
has $.x;
has $.y;
}


>   
> vs.  
>   
> ~~~perl

use v6;  

> class Point {  
> 	has $!x;  
> 	has $!y;  
> }  
> 

Das ist wohl nur für einen langjährigen Perler durchschaubar und ob das Ausdruckstark ist?

Nicht alles in Perl6 ist perfekt. Twigils muss man halt lernen. Aber die Tatsache, dass es jetzt Sichtbarkeits-Modifikatoren gibt, ist auf jeden Fall ein großer Fortschritt.

Mein Hauptaugenmerk bei meiner Lobeshymne lag eher auf Konstrukten wie Junctions:

if $x eq 3|4|5 {  
  say "x is either 3, 4 or 5.";  
}

Oder auch Subtypes:

sub x(Int $x where { $x > 10 }) {  
  say "x is $x";  
}  
  
x(11);  
x(12);  
x(9);  

Gramars sind auch ziemlich genial:

  
#!/usr/local/bin/perl6 -w  
  
grammar HTTP_URI {  
  token TOP         { ^'http' 's'? '://' <host> [':'<port>]? [<path>]? $ };  
  token host        { <IPv4address> | <hostname> };  
  token port        { <.digit>* };  
  
  token IPv4address { <.dec_octet> '.' <.dec_octet> '.' <.dec_octet> '.' <.dec_octet> };  
  
  token dec_octet   {  
    '25' <[0..5]>           |   # 250 - 255  
    '2' <[0..4]> <.digit>   |   # 200 - 249  
    '1' <.digit> ** 2       |   # 100 - 199  
    <[1..9]> <.digit>       |   # 10 - 99  
    <.digit>                    # 0 - 9  
  };  
  
  token hostname    { \w+ ['.' \w+]* };  
  token path        { .* };  
};  
  
my @tests = <  
  http://ck.kennt-wayne.de/abc  
  https://ck.kennt-wayne.de/  
  https://ck.kennt-wayne.de  
  ht://wfewf  

>;  
  
for @tests -> $uri {  
  if HTTP_URI.parse($uri) {  
    say "$uri matches!";  
  }  
  else {  
    say "$uri does not match!";  
  }  
}  
  

Und so weiter, und so fort :)

Ein grosses Problem bei Operatoren ist, dass sich so schlecht danach suchen läßt.

Ach, via Google vielleicht. Aber perldoc perlop ist doch recht leicht durchsuchbar. perldoc perlop<enter>///<enter>, zweiter Treffer ist der richtige (der erste Treffer ist die associativity list).

Natürlich es mag irgendwie gehen, ich sagte auch nur das es schwer ist.

Und ich bezweifelte das gerade.

Wobei mir nicht klar ist, wie ich in perldoc perlop suchen könnte. perldoc --help gibt mir auch keinen Hinweis.

Dein Pager hat idR eingebaute Suchmöglichkeiten. Meiner (less) benutzt / als Shortcut für Regex-Suchen.

再见,
 克里斯蒂安