diff options
-rw-r--r-- | cs-cz/javascript.html.markdown | 20 | ||||
-rw-r--r-- | de-de/perl-de.html.markdown | 169 |
2 files changed, 188 insertions, 1 deletions
diff --git a/cs-cz/javascript.html.markdown b/cs-cz/javascript.html.markdown index b4596c40..e781db3e 100644 --- a/cs-cz/javascript.html.markdown +++ b/cs-cz/javascript.html.markdown @@ -105,6 +105,10 @@ false; // nepravda // Řetězce znaků se spojují pomocí + "Ahoj " + "světe!"; // = "Ahoj světe!" +// ... což funguje nejenom s řetězci +"1, 2, " + 3; // = "1, 2, 3" +"Ahoj " + ["světe", "!"] // = "Ahoj světe,!" + // a porovnávají se pomocí < nebo > "a" < "b"; // = true @@ -131,7 +135,7 @@ null === undefined; // = false // Existují také typy `null` a `undefined`. null; // značí, že žádnou hodnotu -undefined; // značí, že hodnota nebyla definovaná definovaná (ikdyž +undefined; // značí, že hodnota nebyla definovaná (ikdyž // `undefined` je hodnota sama o sobě) // false, null, undefined, NaN, 0 and "" vrací nepravdu (false). Všechno ostatní @@ -156,6 +160,9 @@ jinaPromenna = 10; // Proměnné vytvořené bez přiřazení obsahují hodnotu undefined. var dalsiPromenna; // = undefined +// Pokud chcete vytvořit několik proměnných najednou, můžete je oddělit čárkou +var someFourthVar = 2, someFifthVar = 4; + // Existuje kratší forma pro matematické operace na proměnné promenna += 5; // se provede stejně jako promenna = promenna + 5; // promenna je ted 10 @@ -313,6 +320,12 @@ setTimeout(funkce, 5000); // Poznámka: setTimeout není část JS jazyka, ale funkce poskytována // prohlížeči a NodeJS +// Další funkce poskytovaná prohlížeči je je setInterval +function myFunction(){ + // tento kód bude volán každých 5 vteřin +} +setInterval(myFunction, 5000); + // Objekty funkcí nemusíme ani deklarovat pomocí jména, můžeme je napsat jako // ananymní funkci přímo vloženou jako argument setTimeout(function(){ @@ -503,6 +516,11 @@ if (0){ // Tento kód se nespustí, protože 0 je nepravdivá (false) } +if (new Number(0)){ + // Tento kód se spustí, protože obalená čísla jsou objekty, + // a objekty jsou vždy pravdivé +} + // Avšak, obalovací objekty a normální vestavěnné typy sdílejí prototyp, takže // můžete přidat funkcionalitu k řetězci String.prototype.prvniZnak = function(){ diff --git a/de-de/perl-de.html.markdown b/de-de/perl-de.html.markdown new file mode 100644 index 00000000..fd8fb3c4 --- /dev/null +++ b/de-de/perl-de.html.markdown @@ -0,0 +1,169 @@ +--- +language: perl +filename: learnperl-de.pl +contributors: + - ["Korjavin Ivan", "http://github.com/korjavin"] +translators: + - ["Martin Schimandl", "http://github.com/Git-Jiro"] +lang: de-de +--- + +Perl 5 ist eine sehr mächtige, funktionsreiche Programmiersprache mit über 25 Jahren Entwicklungsgeschichte. + +Perl 5 läuft auf über 100 Platformen von portablen Geräten bis hin zu Mainframes. Perl 5 ist geeignet für Rapid-Prototyping und auch groß angelegte Entwicklungs-Projekte. + +```perl +# Einzeilige Kommentare beginnen mit dem # Symbol. + + +#### Perl Variablen Typen + +# Variablen beginnen mit einem Sigil, das ist ein Symbol das den Typ anzeigt. +# Ein erlaubter Variablen-Name beginnt mit einem Buchstaben oder einem +# Unterstrich, gefolgt von beliebig vielen weiteren Buchstaben, Zahlen und +# Unterstrichen. + +### Perl hat drei Haupt-Typen von Variablen: $scalar, @array, und %hash. + +## Scalare +# Ein Scalar repräsentiert einen einzelnen Wert: +my $animal = "camel"; +my $answer = 42; + +# Scalare Werte könnne Zeichenketten, Ganzzahlen und Gleitkomma-Zahlen sein. +# Perl convertiert automatisch zwischen diesen Werten wenn nötig. + +## Arrays +# Ein Array repräsentiert eine Liste von Werten: +my @animals = ("camel", "llama", "owl"); +my @numbers = (23, 42, 69); +my @mixed = ("camel", 42, 1.23); + + + +## Hashes +# Ein Hash representiert ein Set von Schlüssel/Wert Paaren: + +my %fruit_color = ("apple", "red", "banana", "yellow"); + +# Man kann Leerzeichen und den "=>" Operator verwenden um sie schön darzustellen: + +my %fruit_color = ( + apple => "red", + banana => "yellow", +); +# Scalare, Arrays und Hashes sind in perldata sehr genau dokumentiert. +# (perldoc perldata) + +# Komplexere Daten-Typen können mit hilfe von Referenzen konstruiert werden. +# Dies erlaubt das erstellen von Listen und Hashes in Listen und Hashes. + +#### Bedingte Ausführungs- und Schleifen-Konstrukte. + +# Perl besitzt die üblichen Bedingte Ausführung- und Schleifen-Konstrukte + +if ($var) { + ... +} elsif ($var eq 'bar') { + ... +} else { + ... +} + +unless (condition) { + ... +} +# Dies ist die etwas leserliche Version von "if (!Bedingung)" + +# Die Perl-Eigene Post-Bedingungs-Schreibweise +print "Yow!" if $zippy; +print "We have no bananas" unless $bananas; + +# while +while (condition) { + ... +} + + +# Für Schleifen und Iterationen +for (my $i = 0; $i < $max; $i++) { + print "index is $i"; +} + +for (my $i = 0; $i < @elements; $i++) { + print "Current element is " . $elements[$i]; +} + +for my $element (@elements) { + print $element; +} + +# Implizite Iteration +for (@elements) { + print; +} + +# Die Perl-Eigene Post-Bedingungs-Schreibweise nochmals +print for @elements; + +#### Reguläre Ausdrücke + +# Die Unterstützung von Perl für reguläre Ausdrücke ist weit und tiefgreifend. +# Sie ist ausführlich in perlrequick, perlretut und sonstwo dokumentiert. +# Die Kurzfassung: + +# Einfaches Vergleichen +if (/foo/) { ... } # Wahr wenn "foo" in $_ enthalten ist +if ($a =~ /foo/) { ... } # Wahr wenn "foo" in $a enthalten ist + +# Einfache Substitution + +$a =~ s/foo/bar/; # Ersetzt foo mit bar in $a +$a =~ s/foo/bar/g; # Ersetzt ALLE VORKOMMNISSE von foo mit bar in $a + + +#### Dateien und Ein-/Ausgabe + +# Dateien werden mit der "open()" Funktion zur Ein- oder Ausgabe geöffnet. + +open(my $in, "<", "input.txt") or die "Can't open input.txt: $!"; +open(my $out, ">", "output.txt") or die "Can't open output.txt: $!"; +open(my $log, ">>", "my.log") or die "Can't open my.log: $!"; + +# Von einem geöffneten Datei-Handle kann mit dem "<>" Operator gelesen werden. +# In einem Scalaren-Kontext liest man damit eine einzelnen Zeile vom Datei-Handle. +# In einem Listen-Kontext wird damit die komplette Datei eingelesen. Dabei +# entspricht jede Zeile einem Element der Liste: + +my $line = <$in>; +my @lines = <$in>; + +#### Schreiben von Subroutinen + +# Subroutinen schreiben ist einfach: + +sub logger { + my $logmessage = shift; + + open my $logfile, ">>", "my.log" or die "Could not open my.log: $!"; + + print $logfile $logmessage; +} + +# Nun können wir die Subroutine genau wie eine eingebaute Funktion verwenden: + +logger("We have a logger subroutine!"); +``` + +#### Verwenden von Perl Modulen + +Perl Module liefern eine Menge an Funktionen die dabei Helfen das Rad nicht neu erfinden zu müssen. Perl Module können von CPAN (http://www.cpan.org/) heruntergeladen werden. Einige populäre Module sind in der Perl Distribution selbst bereits enthalten. + +Perlfaq enthält Fragen und Antworten zu häufig vorkommenden Aufgaben. Sehr oft sind auch Vorschläge enthalten welches CPAN module am besten geeignet ist. + +#### Weiterführende Literatur + + - [perl-tutorial](http://perl-tutorial.org/) + - [Learn at www.perl.com](http://www.perl.org/learn.html) + - [perldoc](http://perldoc.perl.org/) + - in Perl eingebaut : `perldoc perlintro` |