Fileglob jako UTF-8?

Honza Pazdziora adelton na fi.muni.cz
Neděle Březen 8 20:46:05 CET 2009


On Fri, Mar 06, 2009 at 12:02:27PM +0100, Jan Kasprzak wrote:
> 	Nevite nekdo jak rict Perlu, ze soubory na disku mam pojmenovane
> v UTF-8 tak, aby konstrukce typu <*.txt> vracely znakovy a ne bajtovy
> retezec? V perlunicode(1) se globy uvadi v sekci "When Unicode Does Not Happen",
> ale treba lze Perl nejak prinutit, aby fakt cetl globy jako znaky a ne bajty.

Jak to čte to asi nezměníš -- on dělá readdir a getdents mu to vrátí
jako bajty.

Předpokládám ale, že Ti jde spíš o to, aby ten glob to vrátil jako
UTF-8 řetězce, a pak mi přijde nejjednodušší to prostě na ty řetězce
pře-decodovat.

Čili něco jako

	use Encode ();
	sub utf8_glob {
		return map { Encode::decode("utf-8", $_) }
	File::Glob::glob(@_);
	}
	*CORE::GLOBAL::glob = \&utf8_glob;

Je to to, co hledáš?

-- 
--------------------------------------------------------------------------
  Honza Pazdziora | adelton na fi.muni.cz | http://www.fi.muni.cz/~adelton/
.project: Satellite, Spacewalk | Only self-confident people can be simple.


Další informace o konferenci Perl