#!/usr/bin/perl # DB_File example from http://blog.livedoor.jp/dankogai/archives/51500530.html use 5.010; use strict; use warnings; use utf8; use Fcntl; use DB_File; use DBM_Filter; my @Tied; my $Filename='087.txt'; my $db = tie @Tied, 'DB_File', $Filename, O_CREAT | O_RDWR, 0644, $DB_RECNO; $db->Filter_Push('encode' => 'UTF-8'); binmode STDOUT,':encoding(UTF-8)'; my $i =0; while () { chomp; $Tied[$i] = $_; ++$i; } # end while () $i =0; foreach (@Tied) { say "$i $Tied[$i]" if /τ/; #greek letter... ++$i; } # end foreach (@Tied) $db->Filter_Pop(); untie $Filename; __DATA__ your greek input