my $file = '/var/tmp/temp_data.txt'; ##################### File for reading
open(FILE, '<:encoding(UTF-8)', $file) || die("Unable to open file");
my @fieldss = <FILE>;
close(FILE);
chomp @fieldss;
my @fields = split(':', @fieldss);####################### Splitting the lines in file ##############
####################################### Dereference ############################
my $names = $fields[0];
my $rate = $fields[1];
my $no_of_days = $fields[2];
my $total_salary = $fields[3];
my $total = $fields[4];
my $basic = $fields[5];
my $da = $fields[6];
my $hra = $fields[7];
my $ot_hallowance = $fields[8];
my $gross = $fields[9];
my $epf = $fields[10];
my $nett = $fields[11];
print "$names\n $rate\n";
foreach $names (@fields) {
my $dbh = "DBI:$platform:$database:$host:$port";
my $connect = DBI->connect($dbh, $user, $pw) || die $DBI::errstr;
$query = "SELECT * FROM salary WHERE name IN('sssss', 'ffffff', 'dddddd', 'ddededed', 'garaead', 'adgfdfg', 'gadfredg')";
my $sth = $connect->prepare($query);
$sth->execute() || die $DBI::errstr;
my @data2;
while (@data2 = $sth->fetchrow_array()) {
my $name = $data2[0];
my $email = $data2[1];
if ($names eq $name) { ######################### Comparing names in file and database ########################
上面的代碼是讀取文本文件和數據使用split函數進行拆分。我的問題是我在閱讀和分割文件時犯了錯誤。我在運行代碼時遇到了504錯誤,我認爲這是因爲在文本文件中爲每一行調用數據庫。謝謝你的幫助。將文本文件讀入perl中的陣列
請勿使用裸號文件句柄。現在不是1999年了。 – melpomene
'split(':',@fieldss)'不會分割文件中的行。 'split'只接受一個字符串,而不是一個數組。你期望這個做什麼? – melpomene
你的網絡服務器的錯誤日誌裏有什麼? – melpomene