dieses Programm Gemeint ist damit zu tun, dass es eine Textdatei liest, die wie folgt aussieht:Perl einfacher Filehandling von Text
Artikel \ t \ t Preis
Apfel \ t \ t 20
Orange \ t \ t 50
Kalk \ t \ t 30
I Split-Funktion bin mit diesen zwei Spalten aufgeteilt und dann sollte ich einen 25% Rabatt auf alle Artikel gelten und ausdrucken zu einem neue Datei. Mein Code macht bisher, was ich will, aber die neue Textdatei hat einen '0' Wert unter meiner letzten Nummer in der Preisspalte. Ich habe auch zwei Fehler, wenn ich es mit „Verwendung Warnungen“ laufen, die sind:
Verwendung von nicht initialisierten Wert $ item in Multiplikation * ...
Verwendung von nicht initialisierten Wert $ item [0] in Verkettung (.) ...
ich sollte auch Gesamtzahl der Elemente berechnet sagen, aber ich mag 5 1en erhalten anstelle von 5. (11111 statt 5)
use strict;
use warnings;
my $filename = 'shop.txt';
if (-e $filename){
open (IN, $filename);
}
else{
die "Can't open input file for reading: $!";
}
open (OUT,">","discount.txt") or die "Can't open output file for writing: $!";
my $header = <IN>;
print OUT $header;
while (<IN>) {
chomp;
my @items = split(/\t\t/);
foreach my $item ($items[1]){
my $discount = $item * (0.75);
print OUT "$items[0]\t\t$discount\n";
}
}
Das Skript sollte funktionieren, wenn keine leeren Zeilen vorhanden sind und alle Elemente durch zwei Registerkarten getrennt sind. Die Warnungen, die Sie erhalten, weisen darauf hin, dass dies nicht der Fall ist. –