open (my $myfile, "$i") or die...
open (my $myfile, "<$i")or die... #no space after <
open (my $myfile, '<', "$i") or die...
open (my $myfile, '<', \$i) or die...
take your pick...
####
$ cat abc/abc.txt
line 1
line 2
$
####
use strict;
use warnings;
my $fn = q{abc/abc.txt};
print qq{\nTest 1:\n};
print do{
open my $fh, $fn or die qq{open: Test 1: \n};
<$fh>;
};
print qq{\nTest 2:\n};
print do{
open my $fh, qq{<$fn} or die qq{open: Test 2: \n};
<$fh>;
};
print qq{\nTest 3:\n};
print do{
open my $fh, qq{< $fn} or die qq{open: Test 3: \n};
<$fh>;
};
print qq{\nTest 4:\n};
print do{
open my $fh, q{<}, $fn or die qq{open: Test 4: \n};
<$fh>;
};
print qq{\nTest 5:\n};
print do{
open my $fh, q{<}, \$fn or die qq{open: Test 5: \n};
<$fh>;
};
print qq{\n};
####
Test 1:
line 1
line 2
Test 2:
line 1
line 2
Test 3:
line 1
line 2
Test 4:
line 1
line 2
Test 5:
abc/abc.txt