Win32::Unicode - perl unicode-friendly wrapper for win32api.


Win32-Unicode documentation Contained in the Win32-Unicode distribution.

Index


Code Index:

NAME

Top

Win32::Unicode - perl unicode-friendly wrapper for win32api.

SYNOPSIS

Top

  use utf8;
  use Win32::Unicode;

  # unicode console out
  printW "I \x{2665} Perl";

  # unicode file util
  unlinkW $file or die $!;
  copyW $from, $to or die $!;
  moveW $from, $to or die $!;
  file_type f => $file ? 'ok' : 'no file';
  my $size = file_size $file;
  touchW $new_file;
  my @stat = statW $file;

  # unicode directory util
  mkdirW $dir or die $!;
  rmdirW $dir or die $!;
  my $cwd = getcwdW;
  chdirW $change_dir;
  findW sub { sayW $_ }, $dir;
  finddepthW sub { sayW $_ }, $dir;
  mkpathW $long_path_dir_name;
  rmtreeW $tree;
  cptreeW $from, $to
  mvtreeW $from, $to;
  my $dir_size = dir_size $dir;
  my @file_list = file_list $dir;
  my @dir_list = dir_list $dir;

  # opendir
  my $wdir = Win32::Unicode::Dir->new;
  $wdir->open($dir) or die $!;
  for ($wdir->fetch) {
      next if /^\.{1,2}$/;

      my $full_path = "$dir/$_";
      if (file_type('f', $full_path)) {
          # $_ is file
      }
      elsif (file_type('d', $full_path))
          # $_ is directory
      }
  }
  $wdir->close or die $!;

DESCRIPTION

Top

Wn32::Unicode is a perl unicode-friendly wrapper for win32api. This module many functions import :P.

Many features easy to use Perl because I think it looks identical to the standard function.

OPTION

Top

Switch Win32::Unicode::Native.

  use Win32::Unicode '-native'; # eq use Win32::Unicode::Native

AUTHOR

Top

Yuji Shimada <xaicron@cpan.org>

SEE ALSO

Top

Win32::Unicode::File

Win32::Unicode::Dir

Win32::Unicode::Console

Win32::Unicode::Process

Win32::Unicode::Error

Win32::Unicode::Native

Win32

LICENSE

Top

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


Win32-Unicode documentation Contained in the Win32-Unicode distribution.

package Win32::Unicode;

use strict;
use warnings;
use 5.008003;
use Exporter ();

our $VERSION = '0.25';

use Win32::Unicode::Console ':all';
use Win32::Unicode::File    ':all';
use Win32::Unicode::Dir     ':all';
use Win32::Unicode::Error   ':all';
use Win32::Unicode::Process ':all';

# export subs
our @EXPORT = (
    @Win32::Unicode::Console::EXPORT,
    @Win32::Unicode::File::EXPORT,
    @Win32::Unicode::Dir::EXPORT,
    @Win32::Unicode::Error::EXPORT,
    @Win32::Unicode::Process::EXPORT,
);

our @EXPORT_OK = (
    @Win32::Unicode::Console::EXPORT_OK,
    @Win32::Unicode::File::EXPORT_OK,
    @Win32::Unicode::Dir::EXPORT_OK,
    @Win32::Unicode::Error::EXPORT_OK,
    @Win32::Unicode::Process::EXPORT_OK,
);

our %EXPORT_TAGS = (
    console => $Win32::Unicode::Console::EXPORT_TAGS{all},
    file    => $Win32::Unicode::File::EXPORT_TAGS{all},
    dir     => $Win32::Unicode::Dir::EXPORT_TAGS{all},
    error   => $Win32::Unicode::Error::EXPORT_TAGS{all},
    process => $Win32::Unicode::Process::EXPORT_TAGS{all},
    all     => [@EXPORT, @EXPORT_OK],
);

sub import {
    my $class = shift;
    my $caller = caller(0);
    
    my @args;
    for my $arg (@_) {
        if ($arg eq '-native') {
            require Win32::Unicode::Native;
            no strict 'refs';
            map {
                *{"$caller\::$_"} = \&{"Win32::Unicode::Native::$_"};
            } @Win32::Unicode::Native::EXPORT;
        }
        else {
            push @args, $arg;
        }
    }
    
    local $Exporter::ExportLevel = 1;
    Exporter::import($class, @args);
}

1;
__END__