ฉันต้องการแยกวิเคราะห์ไฟล์ทีละบรรทัด ซึ่งแต่ละไฟล์มีจำนวนเต็มสองตัว จากนั้นรวมค่าเหล่านี้เป็นตัวแปรที่แตกต่างกันสองตัว แนวทางที่ไร้เดียงสาของฉันเป็นเช่นนี้:
my $i = 0;
my $j = 0;
foreach my $line (<INFILE>)
{
($i, $j) += ($line =~ /(\d+)\t(\d+)/);
}
แต่มีคำเตือนดังนี้
การใช้ตัวแปรส่วนตัวอย่างไร้ประโยชน์ในบริบทที่เป็นโมฆะ
บอกเป็นนัยว่าการใช้ตัวดำเนินการ += ทำให้เกิดการประเมินทางด้านซ้ายมือในสเกลาร์แทนที่จะเป็นบริบทของรายการ (โปรดแก้ไขฉันหากฉันผิดในประเด็นนี้)
เป็นไปได้ไหมที่จะบรรลุสิ่งนี้อย่างหรูหรา (อาจเป็นในบรรทัดเดียว) โดยไม่ต้องใช้อาร์เรย์หรือตัวแปรกลาง?
คำถามที่เกี่ยวข้อง: ฉันจะรวมอาร์เรย์ที่ชาญฉลาดใน Perl ได้อย่างไร