Zum Wie, nicht zum Warum
Let's go!
Kgega Angoff Unos Therdthai
Porndoe Outgoing Allen Rotko
seinna Abdschad Eggos cohnii
Vigneau Eilsdorf Ogot Mommo
Kila Egos Aided Cudi
schlaueste Essner oikos valgo
Hazgo imag Eastern szlwiki
wiege Ogot EXPLAIN Furgao
Preggo Alans Echten Kokkai
Courte Amnium Orvin rango
feschde Angot Objects Cardi
bahoe Autec Ursus Margo
Monnaie Ichschrift adgoal Dorbi
Fanzo Acclaim ostrich Mnogo
Kowqqxu egor einknickt brachii
Rahmi inquest erschien Ghigo
Porndoe Outgoing Allen Rotko
seinna Abdschad Eggos cohnii
Vigneau Eilsdorf Ogot Mommo
Kila Egos Aided Cudi
schlaueste Essner oikos valgo
Hazgo imag Eastern szlwiki
wiege Ogot EXPLAIN Furgao
Preggo Alans Echten Kokkai
Courte Amnium Orvin rango
feschde Angot Objects Cardi
bahoe Autec Ursus Margo
Monnaie Ichschrift adgoal Dorbi
Fanzo Acclaim ostrich Mnogo
Kowqqxu egor einknickt brachii
Rahmi inquest erschien Ghigo
Code
#!/usr/bin/perl
# simple-rhyme-creator_1.2.pl
use strict;
use warnings;
use DBI;
use ZugangsDaten_postgresql qw($DB_USER $DB_PASSWD);
use Encode qw(is_utf8 decode encode);
# Programm
## Buchstabenfolge, die in jeder Zeile vorkommen soll
print "\n";
print "Bitte eine kurze Buchstabenfolge eingeben, die in jeder Zeile vorkommen soll!\n";
my $folge = <STDIN>;
chomp $folge;
## Jamben in Hash einlesen
my %jamben;
open ( my $fh, '<jamben.txt' );
my @jamben = <$fh>;
close $fh;
foreach ( @jamben ) {
my $jambus = $_;
chomp $jambus;
my $ende = $jambus;
$ende = lc $ende;
$ende =~ s/.*([aeiouy]+[h]*)$/$1/;
if ( not exists $jamben{$jambus} ) { $jamben{$jambus} = $ende }
}
## Eingelesene Jamben nach Endung ausgeben
foreach ( sort { $jamben{$a} cmp $jamben{$b} } keys %jamben ) {
print $_, " ::: ", $jamben{$_}, "\n";
}
## Jamben durchnummerieren
my %jambencount;
my $jambencounter = 1;
foreach ( keys %jamben ) {
$jambencount{$jambencounter} = $_;
$jambencounter++
}
## Traskkui in Hash einlesen
my %traskkui;
open ( $fh, '<traskkui.txt' );
my @traskkui = <$fh>;
close $fh;
foreach ( @traskkui ) {
my $traskkui = $_;
chomp $traskkui;
my $ende = $traskkui;
$ende = lc $ende;
$ende =~ s/.*([bcdfghklmnpqrstvwxz])$/$1/;
if ( not exists $traskkui{$traskkui} ) { $traskkui{$traskkui} = $ende }
}
## Eingelesene Traskkui nach Endung ausgeben
foreach ( sort { $traskkui{$a} cmp $traskkui{$b} } keys %traskkui ) {
print $_, " ::: ", $traskkui{$_}, "\n";
}
## Traskkui durchnummerieren
my %traskkuicount;
my $traskkuicounter = 1;
foreach ( keys %traskkui ) {
$traskkuicount{$traskkuicounter} = $_;
$traskkuicounter++
}
## Reimzeilen bilden
my $zufallsbereich = scalar keys %jamben;
my $zufallsbereich_traskkui = scalar keys %traskkui;
my @zeilen;
my $i = 1;
while ( $i < 22222 ) {
my $jambencountchoice = int rand($zufallsbereich) + 1;
my $traskkuicountchoice = int rand($zufallsbereich_traskkui) + 1;
my $zeile = $jambencount{$jambencountchoice}." ".$traskkuicount{$traskkuicountchoice};
$jambencountchoice = int rand($zufallsbereich) + 1;
$traskkuicountchoice = int rand($zufallsbereich_traskkui) + 1;
$zeile = $zeile." ".$traskkuicount{$traskkuicountchoice}." ".$jambencount{$jambencountchoice};
if ( $zeile =~ m/.*$folge.*/ ) {
push @zeilen, $zeile;
$i++
} else { print "\$i = $i\n"; next }
}
print "\n";
print "Meine Zeilen:\n\n";
print map { $_, "\n" } @zeilen;
print "\n\n";
## Reimzeilen nach Endung sortieren
my %zeilen;
foreach ( @zeilen ) {
my $zeile = $_;
chomp $zeile;
my $ende = $zeile;
$ende =~ s/.*([aeiouyäöü]+[h]*)$/$1/i;
$ende = lc $ende;
if ( not exists $zeilen{$zeile} ) { $zeilen{$zeile} = $ende }
}
## Eingelesene Zeilen nach Endung ausgeben
print "\nEingelesene Zeilen nach Endung!!! ANFANG.\n\n";
foreach ( sort { $zeilen{$a} cmp $zeilen{$b} } keys %zeilen ) {
print $_, " ::: ", $zeilen{$_}, "\n";
}
print "\nEingelesene Zeilen nach Endung!!! ENDE.\n\n";
## Zeilen nach Endung in Arrays beamen
my %endarrays;
my @array_temp;
my $last_end;
foreach ( sort { $zeilen{$a} cmp $zeilen{$b} } keys %zeilen ) {
my $end = $zeilen{$_};
if ( $last_end ne $end ) {
$endarrays{$last_end} = [@array_temp]; @array_temp = ();
push @array_temp, $_;
} else {
print "Ende: $end, Last-End: $last_end\n";
print "Zeile: $_\n";
push @array_temp, $_
}
$last_end = $end;
}
## Sortierte Zeilen-Arrays nach Endung ausgeben
print "\nSortierte Zeilenarrays:\n\n";
foreach ( sort { $a cmp $b } keys %endarrays ) {
print $_, "\n";
my $array_ref = $endarrays{$_};
print map { $_, "\n" } @$array_ref;
}
## Endarrays durchnummerieren
my %endarrays_numbered;
my $number = 1;
foreach ( keys %endarrays ) {
$endarrays_numbered{$number} = $_;
$number++
}
## Zwei Endungen per Zufall auswählen
my $endung1 = int rand(scalar keys %endarrays_numbered) + 1;
my $endung2 = int rand(scalar keys %endarrays_numbered) + 1;
until ( $endung1 ne $endung2 ) {
$endung2 = int rand(scalar keys %endarrays_numbered) + 1
}
### Endung von Ziffer nach Buchstaben
$endung1 = $endarrays_numbered{$endung1};
$endung2 = $endarrays_numbered{$endung2};
print "\nAusgewählte Endung 1: $endung1\n";
print "Ausgewählte Endung 2: $endung2\n";
## Vierzeiler nach Muster Endung1, Endung2, Endung1, Endung2 bilden
my @vierzeiler;
my @zeilen_endung1;
my @zeilen_endung2;
## Endung 1 & 2
foreach ( keys %endarrays ) {
my $end = $_;
$end =~ s/[^aeiouy]//g;
if ( $endung1 =~ m/$end/ ) {
my $array_ref = $endarrays{$_};
map { push @zeilen_endung1, $_ } @$array_ref;
} elsif ( $endung2 =~ m/$end/ ) {
my $array_ref = $endarrays{$_};
map { push @zeilen_endung2, $_ } @$array_ref;
}
}
print "\nArray mit Endung $endung1:\n\n";
print map { $_, "\n" } @zeilen_endung1;
print "\n";
print "\nArray mit Endung $endung2:\n\n";
print map { $_, "\n" } @zeilen_endung2;
print "\n";
## Vierer-Vierzeiler
for ( my $vier = 1; $vier < 5; $vier++ ) {
for ( my $vierzeiler = 1; $vierzeiler < 5; $vierzeiler++ ) {
if ( $vierzeiler == 1 || $vierzeiler == 3 ) {
my $zufall1 = int rand(scalar @zeilen_endung1);
print "Zufall 1: ", $zufall1, "\n";
my $zeile = $zeilen_endung1[$zufall1];
push @vierzeiler, $zeile
} else {
my $zufall2 = int rand(scalar @zeilen_endung2);
print "Zufall 2: ", $zufall2, "\n";
my $zeile = $zeilen_endung2[$zufall2];
push @vierzeiler, $zeile
}
}
# Nach jedem Vierzeiler eine Leerzeile
push @vierzeiler, "";
}
print "\nMein Gedicht:\n\n";
print map { $_, "\n" } @vierzeiler;
print "\n";
El El
Sunca Edeln Abkunft Soroa
Laqa Erststart Offiah telo
Dubi Osbert ideell Dista
dope Athens Appen Helvio
Connu anstellt OpenZFS Magma
Ziele eXist ISAZ Kahlo
LeLe Ölboom oomphies Deliah
TESTE exkan Eksell Hiko
Telge Eban Earthlings ganja
wefi ERDOS Endspiel Sabo
Rennie Insgsamt Öpel Dschibla
Schimke Edel Eurim toho
Nori Eckel Undicht Boga
retie ECON elden dedo
Weuve andockt UNRISD Leela
huele Erzstaat Afon Znojmo
Laqa Erststart Offiah telo
Dubi Osbert ideell Dista
dope Athens Appen Helvio
Connu anstellt OpenZFS Magma
Ziele eXist ISAZ Kahlo
LeLe Ölboom oomphies Deliah
TESTE exkan Eksell Hiko
Telge Eban Earthlings ganja
wefi ERDOS Endspiel Sabo
Rennie Insgsamt Öpel Dschibla
Schimke Edel Eurim toho
Nori Eckel Undicht Boga
retie ECON elden dedo
Weuve andockt UNRISD Leela
huele Erzstaat Afon Znojmo
La La
Scholae arten Esboern vuonna
germa Eislauf unsrer heissä
Circa aussaugt Arnod Simpla
brukte arschlahm Alling niitä
Dikla isteach Assing bitva
Scala ABAP iSec Mariä
Schwarzbau Upland angelt rosia
Muisca alaaf Ansoff tällä
JULIE Ardis Adnan nula
hverri Endlauf ernennt Wäinö
sula using Icing Jawa
Neide Atlas unchar väriä
NPACI Elcock input mela
Robla enGEL Essund silmiä
Grini Aufruf aufregt lanja
Chase ernsten Anklam nähdä
germa Eislauf unsrer heissä
Circa aussaugt Arnod Simpla
brukte arschlahm Alling niitä
Dikla isteach Assing bitva
Scala ABAP iSec Mariä
Schwarzbau Upland angelt rosia
Muisca alaaf Ansoff tällä
JULIE Ardis Adnan nula
hverri Endlauf ernennt Wäinö
sula using Icing Jawa
Neide Atlas unchar väriä
NPACI Elcock input mela
Robla enGEL Essund silmiä
Grini Aufruf aufregt lanja
Chase ernsten Anklam nähdä
Ziemlich hembelisch, fürwahr.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Und es kommt, wie es ja kommen muss ;-)
Cozzi Auerwild Urschmerz hähä
galle Uunfun Einsen Shaozhou
Chaozhou arounds Osdorp Kieltä
Malmö Eozäns infer Tohu
Sütlü askoz Attems neljä
Woozle Idols Ehrhard Juru
wozu Alian APuZG nassüü
Nutzbau ITEC Ortsrecht joozu
Dozu Äxten Andrack tehdä
spatio Angoff Irmtraud Wozu
Sozi Ifans Olsberg jäätä
Tozzia Alsmanns absieht centru
Pourra Osteom eiter Knofi
Lurrie Uster Einstreuung kofu
ngoba abreiern exil stoffi
Krambe IPsoft Estar Zeltgrau
Chaozhou arounds Osdorp Kieltä
vzali Osburg Unschuld tozu
Roozbeh OpenMP Edger räikeää
Bozo Einbaum Answer Rehau
Mwangi Ulfried ofen ditthi
drove ofDoom embeds martu
Neglia Ijon Inwer Boffi
Tofu Ashdown openBC marzu
Zierde Extend ellen Sofi
maissa offset Alant kudzu
leihte Almhof autism Tingzhi
Baloo Ilten Olof vitu
Zune offbeat AKKUS tundi
togra Index Imhof labiau
Snofru inhalt Özgül Sulpsti
Strande anrührt Edoff puteau
............................................................................................................................
Ich gebe zu, heute bin ich ein bisschen albern.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Und es kommt, wie es ja kommen muss ;-)
Dreaming of Palo Alto
Lotstra Euros airpods Mwene
Nusra Abos Alqosh frasi
Rosta USAAF Ivars Mokae
Hälsa Anlis Argos Mbaki
Kostra Atrial odwer furzte
glotzte Ätzkalk iostream kaini
fose Emmett Essens Causae
Gosio entstrahlt ordnend Christi
Sellu AbcdLaos Offord Sople
Wossa Andoer Uusschlag letih
Sabre explos Equus chille
KidGoo Unclos Äther hauzuii
Losta Elten Iwann Nitie
Wishkah Oldfield Eising Rospi
Kuppi eAutos Aerials Zielcke
muosli Armstrongs amends Buki
Kamu Abguss Anwahl psalo
Branle Athar Aornum Balou
CIPA Uthaug Antholz Scalo
Phthalo Eichberg Äuglein branou
Sillä einfah Auslass walo
kovo ANSMANN Elkhart Vialou
Gratia otum alon Jijo
vzdalo Ekler Iken Datau
Calo anders OSTERN Wando
Gordo Auton Alvdal Palou
Scisco atzen erraz Calo
quirre Adson Attard Malou
Grantee Athos annuls Calo
Bope Augsteins aufdas Balou
haloa Agil Ehrhardts Kolo
Hounnou Evers ember Palou
Wcbjocwi aufJens Anhalt Mhiji
Herzo IMIN alters Szczuka
Plexi Einbein EINHORN halti
Chenwei altas iHeart Parla
Rewa although Uffeln Daici
blickte iHealth Ancien Günü
Knetzgau INFORMS Inhalt Sarri
LESTRA ESAT altert MURDA
Tikke erhalt Arbaaz Maiocchi
Note Arschkalt Englard stora
dale eintraegt altern septi
nari Ezin altiv Quincha
Flosse Osgood esfür halti
Ghatge Oswalt Umax ladha
Suse altern expel KLEPPI
LLVMpipe Ansätz altes Beröa
Fklzemeo approx Auriol töitä
lase Ohlmann oxblood Wianki
Cicco Arbeid Alox Heierlöh
Faaizah erfreuen Anbox danzhi
Pharma EeeBox abhaut Jäätä
gimme Isgur ElbSox Zumi
moete Alfen Alox Tädä
zdravja erschtmol Ibrox Lövei
Nache ecox Aidids määrä
Slope oxblood Erreur suoni
heeme Alberts Approx mistä
Nkumba Earbox Ersten Taqi
Reizfreie Ebet oxblood mieltä
Boxi EMBLEM Acral Zagi
Wouri Enox Usher määrä
Stuehle Anas Angad Moxi
Flusshaie Exxon austeilt Bago
Zpfdxove Ascher erlitt DISI
Zmvoxo Indian Adin Traesio
KENO unbdingt Exons WiTi
Rasoi Arzttum Airwheels Saxo
qxokpa Asians Iodes quegli
schlauere Orfeos Ewert toxo
vqaelxo Adul ARBURG Tosai
Sascho Istros AchimP luxo
Strecke Amoc Elem xorrii
zvala Inet Aqton seixo
Dimxoo archiv emisch Balzli
TAME Oinos Eilles Nzroxo
Reiki Axor Osler Saji
lovci Acton Auden Zaxo
DiGGi Exot aufknackt Faki
Bhille Opal Echoes Grüfte
Carti opal Exils Serhii
paleo Adverb Arcor VERSE
Wempe Ahmend Artes palih
Lubna opal istDas doodle
jrsplietau einafch Utpal BOSSI
Tesa Orwant Urhber spalte
flare Apax Austen palih
Jähne Einhon Inground Spalte
Biolo einwirft Aufpall Khojki
palih athlet Alterns sase
Sabria Opal ieiner kali
Duacha Isaacs iwann spalta
Bike opal Ehmkes KOGO
treilea Utpal Altaic Ralea
nielee abkann opal lembro
Chute ergoss ewell Spalti
wille Utpal anfrisst mfumo
pala Ontwerp IHUD Venti
NoVo Opal EBooks foto
Paluu Erdwolf Ahwaz Gwini
paldo Epid Elgin Csardi
Tebble opal einfuhr wifi
sparka axial Eifach palih
Spalla Afzal ALAN Macau
palta Anion Arcos siento
palju EITAN emit Schönau
lobe innland Erneuert paldo
Neanche Omarr Amend palta
Barfi aufgefhrt Axxis palo
Delia APOD ACOG Spala
longae Ehbrecht Ortmann paldo
Paro paso Alto pelu
Prego Peso parduz oro
Qzista sczeru moron ulu
Plano plado Paldo Aldo
Nusra Abos Alqosh frasi
Rosta USAAF Ivars Mokae
Hälsa Anlis Argos Mbaki
Kostra Atrial odwer furzte
glotzte Ätzkalk iostream kaini
fose Emmett Essens Causae
Gosio entstrahlt ordnend Christi
Sellu AbcdLaos Offord Sople
Wossa Andoer Uusschlag letih
Sabre explos Equus chille
KidGoo Unclos Äther hauzuii
Losta Elten Iwann Nitie
Wishkah Oldfield Eising Rospi
Kuppi eAutos Aerials Zielcke
muosli Armstrongs amends Buki
Kamu Abguss Anwahl psalo
Branle Athar Aornum Balou
CIPA Uthaug Antholz Scalo
Phthalo Eichberg Äuglein branou
Sillä einfah Auslass walo
kovo ANSMANN Elkhart Vialou
Gratia otum alon Jijo
vzdalo Ekler Iken Datau
Calo anders OSTERN Wando
Gordo Auton Alvdal Palou
Scisco atzen erraz Calo
quirre Adson Attard Malou
Grantee Athos annuls Calo
Bope Augsteins aufdas Balou
haloa Agil Ehrhardts Kolo
Hounnou Evers ember Palou
Wcbjocwi aufJens Anhalt Mhiji
Herzo IMIN alters Szczuka
Plexi Einbein EINHORN halti
Chenwei altas iHeart Parla
Rewa although Uffeln Daici
blickte iHealth Ancien Günü
Knetzgau INFORMS Inhalt Sarri
LESTRA ESAT altert MURDA
Tikke erhalt Arbaaz Maiocchi
Note Arschkalt Englard stora
dale eintraegt altern septi
nari Ezin altiv Quincha
Flosse Osgood esfür halti
Ghatge Oswalt Umax ladha
Suse altern expel KLEPPI
LLVMpipe Ansätz altes Beröa
Fklzemeo approx Auriol töitä
lase Ohlmann oxblood Wianki
Cicco Arbeid Alox Heierlöh
Faaizah erfreuen Anbox danzhi
Pharma EeeBox abhaut Jäätä
gimme Isgur ElbSox Zumi
moete Alfen Alox Tädä
zdravja erschtmol Ibrox Lövei
Nache ecox Aidids määrä
Slope oxblood Erreur suoni
heeme Alberts Approx mistä
Nkumba Earbox Ersten Taqi
Reizfreie Ebet oxblood mieltä
Boxi EMBLEM Acral Zagi
Wouri Enox Usher määrä
Stuehle Anas Angad Moxi
Flusshaie Exxon austeilt Bago
Zpfdxove Ascher erlitt DISI
Zmvoxo Indian Adin Traesio
KENO unbdingt Exons WiTi
Rasoi Arzttum Airwheels Saxo
qxokpa Asians Iodes quegli
schlauere Orfeos Ewert toxo
vqaelxo Adul ARBURG Tosai
Sascho Istros AchimP luxo
Strecke Amoc Elem xorrii
zvala Inet Aqton seixo
Dimxoo archiv emisch Balzli
TAME Oinos Eilles Nzroxo
Reiki Axor Osler Saji
lovci Acton Auden Zaxo
DiGGi Exot aufknackt Faki
Bhille Opal Echoes Grüfte
Carti opal Exils Serhii
paleo Adverb Arcor VERSE
Wempe Ahmend Artes palih
Lubna opal istDas doodle
jrsplietau einafch Utpal BOSSI
Tesa Orwant Urhber spalte
flare Apax Austen palih
Jähne Einhon Inground Spalte
Biolo einwirft Aufpall Khojki
palih athlet Alterns sase
Sabria Opal ieiner kali
Duacha Isaacs iwann spalta
Bike opal Ehmkes KOGO
treilea Utpal Altaic Ralea
nielee abkann opal lembro
Chute ergoss ewell Spalti
wille Utpal anfrisst mfumo
pala Ontwerp IHUD Venti
NoVo Opal EBooks foto
Paluu Erdwolf Ahwaz Gwini
paldo Epid Elgin Csardi
Tebble opal einfuhr wifi
sparka axial Eifach palih
Spalla Afzal ALAN Macau
palta Anion Arcos siento
palju EITAN emit Schönau
lobe innland Erneuert paldo
Neanche Omarr Amend palta
Barfi aufgefhrt Axxis palo
Delia APOD ACOG Spala
longae Ehbrecht Ortmann paldo
Paro paso Alto pelu
Prego Peso parduz oro
Qzista sczeru moron ulu
Plano plado Paldo Aldo
Darauf einen Lotosblütenkakao, prost!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Tofu al dentist
Cozzi Auerwild Urschmerz hähä
galle Uunfun Einsen Shaozhou
Chaozhou arounds Osdorp Kieltä
Malmö Eozäns infer Tohu
Sütlü askoz Attems neljä
Woozle Idols Ehrhard Juru
wozu Alian APuZG nassüü
Nutzbau ITEC Ortsrecht joozu
Dozu Äxten Andrack tehdä
spatio Angoff Irmtraud Wozu
Sozi Ifans Olsberg jäätä
Tozzia Alsmanns absieht centru
Pourra Osteom eiter Knofi
Lurrie Uster Einstreuung kofu
ngoba abreiern exil stoffi
Krambe IPsoft Estar Zeltgrau
Chaozhou arounds Osdorp Kieltä
vzali Osburg Unschuld tozu
Roozbeh OpenMP Edger räikeää
Bozo Einbaum Answer Rehau
Mwangi Ulfried ofen ditthi
drove ofDoom embeds martu
Neglia Ijon Inwer Boffi
Tofu Ashdown openBC marzu
Zierde Extend ellen Sofi
maissa offset Alant kudzu
leihte Almhof autism Tingzhi
Baloo Ilten Olof vitu
Zune offbeat AKKUS tundi
togra Index Imhof labiau
Snofru inhalt Özgül Sulpsti
Strande anrührt Edoff puteau
............................................................................................................................
Ich gebe zu, heute bin ich ein bisschen albern.
Kommentare
Kommentar veröffentlichen