⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 childerror.pm

📁 platform file from motorola kernel code
💻 PM
字号:
# The source files are wholly original Motorola proprietary work now being # licensed as BSD, the following Copyright Notice will be added to each source # code file, documentation and other materials with the distribution:# #       Copyright  2006, Motorola, All Rights Reserved.# # This program is licensed under a BSD license with the following terms:# # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met:## - Redistributions of source code must retain the above copyright notice, #   this list of conditions and the following disclaimer. ## - Redistributions in binary form must reproduce the above copyright notice, #   this list of conditions and the following disclaimer in the documentation #   and/or other materials provided with the distribution. ## - Neither the name of the MOTOROLA nor the names of its contributors may be #   used to endorse or promote products derived from this software without #   specific prior written permission.### THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE.#package ChildError;use strict;use overload	'""' => \&stringify,	'0+' => \&numeric,	bool => \&bool,	fallback => 1;my @Sig_Name;sub import {	my $class = shift;	my $sym = join('::',scalar(caller),shift || 'CHILD_ERROR');	tie(my $var,__PACKAGE__);	no strict 'refs';	*{$sym} = \$var;}sub new {	my $this = shift;	my $class = ref($this) || $this;	my $n = @_ ? shift : $?;	my $self = { val => $n };	unless ($self->{exit} = ($n >> 8) & 0xFF) {		@$self{qw(sig core)} = ($n & 0x7F,($n & 0x80) ? 1 : 0);	}	if ($self->{exit} == 0x7F) {		$self->{err} = 'No such file or directory';	} elsif ($self->{exit} == 0x7E) {		$self->{err} = 'Permission denied';	} elsif ($self->{exit} == 0x02) {		$self->{err} = 'Syntax error';	}	bless($self,$class);}sub shell {	my ($self,$exit) = @_;	$exit &= 0xFF;	if ($exit > 0x80) {		$exit ^= 0x80;	} else {		$exit <<= 8;	}	$self->new($exit);}sub system {	my ($self,$exit) = @_;	my $obj = $self->new($exit);	$obj->{str} = "system: $!" if ($exit == -1);	$obj;}sub stringify {	my $self = shift;	unless ($self->{str}) {		my $str;		if ($self->{sig} && !$self->{exit}) {			unless (@Sig_Name) {				require Config;				@Sig_Name[split(' ',$Config::Config{sig_num})]					= split(' ',$Config::Config{sig_name});			}			$str = "signal($self->{sig}) - ".($Sig_Name[$self->{sig}] || '?');			$str .= ' (core dumped)' if $self->{core};		} else {			$str = "exit($self->{exit})";			$str .= " - $self->{err}" if $self->{err};		}		$self->{str} = $str;	}	$self->{str};}sub numeric { int(shift->{val}) }sub bool { shift->numeric != 0 }*TIESCALAR = *FETCH = sub { shift->new };sub STORE { $? = $_[1]; $_[0] = $_[0]->new }1;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -