Thomas N: $betrag = <stdin> || 0; Wie handeln ohne Eingabe?

Beitrag lesen

Hi,

my $betrag = param('betrag');

Übrigens ist $betrag undef, wenn kein entsprechender Parameter an das CGI-Script übergeben wurde. Besser wäre in solchen Fällen:

my $betrag = param('betrag') || 0;

Ja, das funktioniert, an das Problem hat ich noch nicht dran gedacht!
Aber wie mach ich das bei meiner Konsolenversion?

print "Geben Sie den umzurechnenden Betrag ein:\n";
$betrag = <stdin> || 0;
chomp($betrag)
$betragR =~ s/,/./;

So funktioniert es dort nicht!
Wenn ich nichts eingebe sagt mir die Konsole:
Argument "" isn't numeric in sprintf at 15702_4.pl line 19, <stdin> line 1.

Auch so gehts nicht - mal davon abgesehen, dass es sicher nicht elegant ist.

$betrag = 0;
$betrag = <stdin>;
chomp($betrag)
$betragR =~ s/,/./;

Aber sollte nicht $betrag gleich Null sein, wenn ich nichts über <stdin> eingebe? Was passiert mit $betrag, wenn ich über  <stdin> nichts eingebe?

Thomas N