[![Build Status](https://travis-ci.com/worthmine/usw.svg?branch=master)](https://travis-ci.com/worthmine/usw) [![Build Status](https://img.shields.io/appveyor/ci/worthmine/usw/master.svg?logo=appveyor)](https://ci.appveyor.com/project/worthmine/usw/branch/master)
# NAME

usw - use utf8; use strict; use warnings; in one line.

# SYNOPSIS

    use usw; # is just 8 bytes pragma instead of below:
    use utf8;
    use strict;
    use warnings;
    my $cp = '__YourCP__' || 'UTF-8';
    binmode \*STDIN,  ':encoding($cp)';
    binmode \*STDOUT, ':encoding($cp)';
    binmode \*STDERR, ':encoding($cp)';
     

# DESCRIPTION

usw is like a shortcut pragma that works in any environment.

May be useful for those who write the above code every single time.

## HOW TO USE

    use usw;

It seems a kind of pragmas but doesn't spent
[%^H](https://metacpan.org/pod/perlpragma#Key-naming)
because overusing it is nonsense.

`use usw;` should be just the very shortcut at beginning of your codes.

Therefore, if you want to set `no`, you should do it the same way as before.

    no strict;
    no warnings;
    no utf8;

These still work as expected everywhere.

And writing like this doesn't work.

    no usw;

## Automatically repairs bugs around file path which is encoded

It replaces `$SIG{__WARN__}` or/and `$SIG{__DIE__}`
to avoid the bug(This may be a strange specification)
of encoding only the file path like that:

    宣言あり at t/script/00_è­¦åãã.pl line 19.

## features

Since version 0.07, you can relate automatically
`STDIN`,`STDOUT`,`STDERR` with `cp\d+`
which is detected by [Win32](https://metacpan.org/pod/Win32) module.

Since version 0.08, you don't have to care if the environment is a Windows or not.

# SEE ALSO

- [Encode](https://metacpan.org/pod/Encode)
- [binmode](https://perldoc.perl.org/functions/binmode)
- [%SIG](https://perldoc.perl.org/variables/%25SIG)
- [Win32](https://metacpan.org/pod/Win32)

# LICENSE

Copyright (C) worthmine.

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

# AUTHOR

Yuki Yoshida([worthmine](https://github.com/worthmine))