Perl Anweisung und CGI-Script

Hallo,
ich muss das hier in eine vernünftige Perl-Anweisung übersetzen:

"Wenn der Inhalt der Variable „income“ kleiner ist als 300, dann drucke „Mann. das ist aber nicht gerade viel Verdienst.“. Wenn der Inhalt der Variablen „income“ zwischen 300 und 1000 liegt, dann drucke „Dein Verdienst scheint ordentlich zu sein.“ und wenn der Inhalt der Variablen „income“ über 1001 liegt, dann drucke „Ey, kannst du mir was leihen?“

Bin da sichtlich überfordert. Auch muss ich ein CGI-Script erstellen welches über ein mehrzeiliges Eingabefeld beliebigen Text entgegennimmt. Alle im Text vorkommenden R und r sollen in L und l umgewandelt werden. Danach soll der Text (in HTML) ausgegeben werden.

Bitte um Hilfe,

mfg richie83

Hallo richie83

"Wenn der Inhalt der Variable „income“ kleiner ist als 300,
dann drucke „Mann. das ist aber nicht gerade viel Verdienst.“.
Wenn der Inhalt der Variablen „income“ zwischen 300 und 1000
liegt, dann drucke „Dein Verdienst scheint ordentlich zu
sein.“ und wenn der Inhalt der Variablen „income“ über 1001
liegt, dann drucke „Ey, kannst du mir was leihen?“

Ich weiss nicht, wie eine „Hilfe“ aussehen sollte,
wennn Du gar keine Kennung hast …

OK, machen wirs so - ich zeige dir eine
Lösungsmöglichkeit - und Du beschreibst
in Deiner Antwort *jede* Zeile - was die tut und so.

use strict;
use warnings;

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
 sub check\_income
{
 my $einkommen = shift;
 my @verdienst = ( [1000, 'Ey, kannst du mir was leihen?'],
 [300, 'Dein Verdienst scheint ordentlich zu sein.'],
 [0, 'Mann. das ist aber nicht gerade viel Verdienst.'] );

 for my $gehaltsgruppe (@verdienst) {
 return $gehaltsgruppe-\>[1] if $einkommen \> $gehaltsgruppe-\>[0] 
 }
 return 'Owei, Du scheinst ja draufzuzahlen!'
}
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
 
 for my $income (5, 220, 331, 12004) {
 print "$income€ \t- ", check\_income($income), "\n"
 }

Auch muss ich ein CGI-Script
erstellen welches über ein mehrzeiliges Eingabefeld beliebigen
Text entgegennimmt. Alle im Text vorkommenden R und r sollen
in L und l umgewandelt werden. Danach soll der Text (in HTML)
ausgegeben werden.

Siehe anderes Posting …

Grüße

CMБ

Hallo,

Auch muss ich ein CGI-Script erstellen welches über ein
mehrzeiliges Eingabefeld beliebigen
Text entgegennimmt. Alle im Text vorkommenden R und r sollen
in L und l umgewandelt werden. Danach soll der Text (in HTML)
ausgegeben werden.

So, hier bin ich wieder. Hat etwas gedauert, da ich
erstmal Kaffee kochen musste :wink: Hier gilt das selbe
wie oben, Du musst jede Zeile erläutern sonst wirst
Du jede Woche mit einem Lottogewinn von 1Mio €
bestraft (und somit vernichtet).

#!perl
use strict;
use warnings;
use CGI ':cgi-lib';

my $q = new CGI;
print $q-\>header,
 $q-\>start\_html;

if($q-\>request\_method() ne 'POST') {
 print $q-\>startform(-method =\> 'POST'),
 $q-\>textarea (-name =\> 'richie84form',
 -default =\>'Text hier eingeben',
 -rows =\>10, -columns =\>64), '
',
 $q-\>submit,
 $q-\>endform;
}
else {
 my $text = ${ $q-\>Vars }{'richie84form' };
 $text =~ tr/Rr/Ll/;
 print $q-\>p( $text )
}
print $q-\>end\_html;

Das gilt für Windows-Umgebung, in Unix- oder mod_perl
Umgebungen musst Du noch die allererste Zeile ändern.

Grüße

CMБ

use strict;
use warnings;

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

sub check_income
{
my $einkommen = shift;
my @verdienst = ( [1001, ‚Ey, kannst du mir was leihen?‘],
[ 300, ‚Dein Verdienst scheint ordentlich
zu sein.‘ ],
[ 0, ‚Mann. das ist aber nicht gerade viel
Verdienst.‘ ] );

for my $income (5, 220, 331, 12004) {
print "$income€ \t- ", check_income($income), „\n“
}

Danke erstmal für deine schnelle und kompetente Hilfe. Ich habe oben das mal ein wenig geändert und erklär dir hier nochmal genauer was ich meine. Also ich wollt einfach nur 3 verschiedene Variationen ausprobieren.
1.)Einkommen kleiner als 300 = „Mann. das ist aber nicht gerade viel Verdienst.“.
2.)Einkommen zwischen 300 und 1000 = „Dein Verdienst scheint ordentlich zu sein.“
3.)Einkommen über 1001 = „Ey, kannst du mir was leihen?“

Das hier glaub ich kann man dann weglassen richtig?
": for my $gehaltsgruppe (@verdienst) {

return $gehaltsgruppe->[1] if $einkommen >
$gehaltsgruppe->[0]
}
return ‚Owei, Du scheinst ja draufzuzahlen!‘
}"

Hallo,

Also ich wollt einfach nur 3 verschiedene Variationen
ausprobieren.
1.)Einkommen kleiner als 300 = „Mann. das ist aber nicht
gerade viel Verdienst.“.
2.)Einkommen zwischen 300 und 1000 = „Dein Verdienst scheint
ordentlich zu sein.“
3.)Einkommen über 1001 = „Ey, kannst du mir was leihen?“

Wie ist das zu verstehen? Möchtest Du dir
im Selbststudium Börrl beibringen? Oder
über einen Kurs? Wie ist die (Deine) Vorbildung
hinsichtlich der Programmiererei?

Das hier glaub ich kann man dann weglassen richtig?
": for my $gehaltsgruppe (@verdienst) {

return $gehaltsgruppe->[1] if $einkommen >
$gehaltsgruppe->[0]

Das ist eine Subroutine bzw. „Prozedur“ oder
„Funktion“, diese dient dazu, eine Art „Befehl“
herzustellen, den man dann im Hauptprogramm benutzt.

Im Prinzip gänge auch:

 ...
 my $income = 0;
 
 if( $income \> 1000 ) {
 print 'Ey, kannst du mir was leihen?'
 }
 elsif( $income \> 300 ) {
 print 'Dein Verdienst scheint ordentlich zu sein.'
 }
 else {
 print 'Mann. das ist aber nicht gerade viel Verdienst.'
 }
 ...

… als nullte Näherung.

Wie ist das im Zusammnehang mit der (anderen) CGI-Aufgabe
zu sehen, die doch vergleichsweise anspruchsvoll ist?
Warum gerade Börrl und nicht Behabee, wie alle anderen :wink: ?

Grüße

CMБ

Nein :smiley:…das sind 2 verschiedene Aufgaben, die haben nichts miteinander zu tun.

Aufgabe 1.) "Wenn der Inhalt der Variable „income“ kleiner ist als 300,
dann drucke „Mann. das ist aber nicht gerade viel Verdienst.“.
Wenn der Inhalt der Variablen „income“ zwischen 300 und 1000
liegt, dann drucke „Dein Verdienst scheint ordentlich zu
sein.“ und wenn der Inhalt der Variablen „income“ über 1001
liegt, dann drucke „Ey, kannst du mir was leihen?“

Aufgabe 2.)Auch muss ich ein CGI-Script erstellen welches über ein
mehrzeiliges Eingabefeld beliebigen
Text entgegennimmt. Alle im Text vorkommenden R und r sollen
in L und l umgewandelt werden. Danach soll der Text (in HTML)
ausgegeben werden.

Hallo Richi,

Aufgabe 1.) "Wenn der Inhalt der Variable „income“ kleiner ist
als 300, dann drucke „Mann. das ist aber nicht gerade viel
Verdienst.“. Wenn der Inhalt der Variablen „income“ zwischen
300 und 1000 liegt, dann drucke „Dein Verdienst scheint ordentlich
zu sein.“ und wenn der Inhalt der Variablen „income“ über 1001
liegt, dann drucke „Ey, kannst du mir was leihen?“

Aufgabe 2.)Auch muss ich ein CGI-Script erstellen welches über
ein mehrzeiliges Eingabefeld beliebigen Text entgegennimmt. Alle
im Text vorkommenden R und r sollen in L und l umgewandelt werden.
Danach soll der Text (in HTML) ausgegeben werden.

Ich vermute sehr stark, Du hast nicht nur meine
Antworten nicht verstanden, sondern auch nicht
meine Fragen :wink:

Grüße

CMБ

„Wie ist das im Zusammnehang mit der (anderen) CGI-Aufgabe
zu sehen, die doch vergleichsweise anspruchsvoll ist?“

Das war nur wegen dieser Aussage von dir :smile:…wollte dir damit nur sagen das die 2 Aufgaben nichts miteinander zu tun haben.

„Wie ist das im Zusammnehang mit der (anderen) CGI-Aufgabe
zu sehen, die doch vergleichsweise anspruchsvoll ist?“

Das war nur wegen dieser Aussage von dir :smile:…wollte dir damit nur sagen das die 2 Aufgaben nichts miteinander zu tun haben. Ich danke dir für deine Hilfe :smile:

return ‚Owei, Du scheinst ja draufzuzahlen!‘

Typisch Programmierer, das Programm macht mehr als der Kunde gefordert hat :wink: