Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]7238[/thread]

Währungsumrechner: Euro und DM haben das gleich Ergebnis (Seite 2)



<< |< 1 2 3 >| >> 24 Einträge, 3 Seiten
J-jayz-Z
 2005-08-28 15:40
#57481 #57481
User since
2005-04-13
625 Artikel
BenutzerIn
[Homepage] [default_avatar]
@Jojo: Wenn man mal in der Materie ist und die richtigen Bücher zur Hand hat, wird so code bald normal. War bei mir am Anfang auch so, als ich mit Perl in 21 Tagen angefangen hatte, das ich immer neidisch war, wie toll der Code von allen ausgesehen hat. Dann hab ich mir das Kamelbuch zugelegt ( http://wiki.perl-community.de/bin/view/Wissensbasis/BuchEmpfehlungen ) und so Code wurde immer mehr normal. Das Buch ist denk ich mal so ziemlich die einzige Lektüre, die dir den Einstieg zu einem richtig guten Perl Programmierer geben kann. Der Rest ist dann nur Übung und engagement !
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'

http://perl-tutor.de
pq
 2005-08-29 14:49
#57482 #57482
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
@Jojo: bitte keine kalendereinträge mehr machen, wenn du keinen termin einstellst,
sondern nur eine ganz normale frage stellst.

und bitte beim nächsten mal code-tags um deinen code herumschreiben.
wie du die benutzt, findest du in der hilfe.

---------
use strict;
use warnings;
my $var = 42;
if ($var) {
 machwas();
}
---------

liest sich nicht so gut wie
Code: (dl )
1
2
3
4
5
6
use strict;
use warnings;
my $var = 42;
if ($var) {
 machwas();
}

und schau mal in meine signatur.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
[E|B]
 2005-08-29 15:53
#57483 #57483
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
@pq

Wie hast du den Kalendereintrag gelöscht? Hab die Funktion nicht gefunden. *blind*
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
pq
 2005-08-29 16:07
#57484 #57484
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
Themen Optionen => Bearbeiten.
ganz unten auf der seite.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Jojo
 2005-09-06 02:23
#57485 #57485
User since
2005-08-28
20 Artikel
BenutzerIn
[default_avatar]
Hi,

Danke für Dein Skript, es hat prima funktioniert!!!

Habe nun ein weiteres Problem, bei dem ich nicht weiter komme.

Folgende Aufgabe wird gestellt:
Schreiben Sie ein PERL-Skript, welches ein Menü mit vier Verzweigungen anzeigt. Bei der Wahl der ersten drei Optionen sollen mit der Eingabe des "Users" jeweils verschiedene Rechenoperationen ausgeführt und das Ergebnis ausgegeben werden. Das Skript soll über die vierte Option beendet werden können.

So weit bin ich gekommen, aber es funktioniert nicht wie gewollt. Es wird nichts berechnet.



Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!usr/bin/perl-w

print <<HERE_TEXT;

addieren <1>
multiplizieren <2>
subtrahieren <3>
beenden <4>

HERE_TEXT
$ergebnis = 0;
$addieren = 0;
$multiplizieren = 0;
$subtrahieren = 0;

chomp ($eingabe = <STDIN>);
if ($eingabe = 1)
{
print "Bitte geben Sie zwei Zahlen ein:\n;
chomp ($zahlen = <STDIN>);
$addieren=$addieren;
print ("Ergebnis der Addition\n";$eingabe);
}
if ($eingabe = 2)
{
print "Bitte geben Sie zwei Zahlen ein:\n;
chomp ($zahlen = <STDIN>);
$multiplizieren=$multiplizieren;
print ("Ergebnis der Multiplikation\n",$eingabe),
}
if ($eingabe = 3)
{
print "Bitte geben Sie zwei Zahlen ein:\n;
chomp ($zahlen = <STDIN>);
$subtrahieren=$subtrahieren;
print ("Ergebnis der Subtraktion\n",$eingabe);
}
if ($eingabe = 4)
{
print "Das Skript wird beendet.\n";
}


Hast Du einen Hinweis, wo dieser Fehler zu suchen ist, bzw. das Skript falsch geschrieben wurde? Ich quäle mich schon seid 2 Tagen und komme einfach nicht drauf.

Gruß und danke!!!

Jojo

edit pq: code-tags repariert\n\n

<!--EDIT|pq|1125963145-->
pq
 2005-09-06 03:33
#57486 #57486
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
@Jojo: es ist nett, dass du versuchst, nun code-tags um deinen code
herumzuschreiben, aber du musst statt [ und ] auch noch code] und [/code
schreiben... danke

p.s. ein blick in meine signatur kann immer noch nicht schaden, da steht das nämlich drin.\n\n

<!--EDIT|pq|1125963296-->
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
J-jayz-Z
 2005-09-06 04:45
#57487 #57487
User since
2005-04-13
625 Artikel
BenutzerIn
[Homepage] [default_avatar]
Ich würde das wohl so schreiben:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/usr/bin/perl
use strict;
use warnings;

print qq~
addieren <1>
multiplizieren <2>
subtrahieren <3>
dividieren <4>
beenden <5>
~;

my ($menu, $eins, $zwei) = 0;

while(1) {
print "Bitte einen Menüpunkt auswählen:";
chomp($menu = <STDIN>);
if($menu != 5) {
print "Bitte 2 Zahlen eingeben:";
chomp($eins = <STDIN>);
chomp($zwei = <STDIN>);
} else {
exit 0;
}
if($menu == 1) {
print &rechnen($eins, $zwei, '+') . "\n";
} elsif($menu == 2) {
print &rechnen($eins, $zwei, '*') . "\n";
} elsif($menu == 3) {
print &rechnen($eins, $zwei, '-') . "\n";
} elsif($menu == 4) {
print &rechnen($eins, $zwei, '/') . "\n";
}
}

sub rechnen {
my $zahl1 = shift;
my $zahl2 = shift;
my $operation = shift;
my $ergebniss;
$operation eq "*" ? $ergebniss = $zahl1 * $zahl2 :
$operation eq "/" ? $ergebniss = $zahl1 / $zahl2 :
$operation eq "-" ? $ergebniss = $zahl1 - $zahl2 :
$operation eq "+" ? $ergebniss = $zahl1 * $zahl2 :
"";
return $ergebniss;
}
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'

http://perl-tutor.de
Ronnie
 2005-09-06 15:51
#57488 #57488
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
etwas perliger:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/usr/bin/perl

use strict;
use warnings;

my $lut = {
1 => sub { my $sum = shift (@_) + shift (@_); return $sum },
2 => sub { my $mul = shift (@_) * shift (@_); return $mul },
3 => sub { my $sub = shift (@_) - shift (@_); return $sub },
4 => sub { my $div = shift (@_) / shift (@_); return $div },
};

my ($menu, $i, $j);

while(1) {

print q'
Bitte einen Menüpunkt auswählen:
addieren <1>
multiplizieren <2>
subtrahieren <3>
dividieren <4>
beenden <5> (oder sonst irgendwas)

';

chomp($menu = <STDIN>);
die "Programm wird beendet ...\n"
unless exists $lut->{$menu};

print "Bitte 2 Zahlen eingeben (hintereinander): ";
$i = <STDIN>;
($i, $j) = $i =~ /^(\d+\.?\d*)\D+(\d+\.?\d*)$/
or die "Das waren keine zwei Zahlen ...\n";

print "Ergebnis: ", $lut->{$menu}($i, $j), "\n";
}
\n\n

<!--EDIT|Ronnie|1126007513-->
Gast Gast
 2005-09-06 16:57
#57489 #57489
Warum nicht einfach sub { (shift) / (shift) } ? :)
Jojo
 2005-09-07 16:33
#57490 #57490
User since
2005-08-28
20 Artikel
BenutzerIn
[default_avatar]
Hallo,

Danke für Deine Hinweis, beim nächsten Code, werde ich es bestimmt nicht vergessen.

Und bitte an alle, die sich wegen meinem Brett vor Kopf nun ihren eigenen zerbrechen!!!!
Bitte nicht mehr anstrengen, weil's bei mir endlich klick gemacht hat.Kann es selber kaum fassen, das ich das hinbekommen habe und es funktioniert sogar.

Also noch einmal besten Dank an alle!!!!


Gruß Jojo
<< |< 1 2 3 >| >> 24 Einträge, 3 Seiten



View all threads created 2005-08-28 12:45.