All exceptions that are placed into the $!
variable (or into $_
in CATCH
blocks) inherit from Exception
. When you call die
or fail
with a non-Exception argument, it is wrapped into an X::AdHoc
object, which also inherits from Exception
.
User-defined exception classes should inherit from Exception
too, and define at least a method message
.
Raku highlighting
class X::YourApp::SomeError is Exception {
method message () {
" A YourApp-Specific error occurred: out of coffee! " ;
}
}
Raku highlighting
method message ( Exception : D : --> Str : D )
This is a stub that must be overwritten by subclasses, and should return the exception message.
Special care should be taken that this method does not produce an exception itself.
Raku highlighting
try die " Something bad happened " ;
if ( $! ) {
say $! . message ;
}
Raku highlighting
method backtrace ( Exception : D : )
Returns the backtrace associated with the exception in a Backtrace
object or an empty string if there is none. Only makes sense on exceptions that have been thrown at least once.
Raku highlighting
try die " Something bad happened " ;
with $! { . backtrace . print ; }
Raku highlighting
method throw ( Exception : D : )
Throws the exception.
Raku highlighting
my $ exception = X::AdHoc . new ;
try $ exception . throw ;
if ( $! ) { } ;
Raku highlighting
method resume ( Exception : D : )
Resumes control flow where .throw
left it when handled in a CATCH
block.
Raku highlighting
CATCH { default { . resume } }
Raku highlighting
method rethrow ( Exception : D : )
Rethrows an exception that has already been thrown at least once. This is different from throw
in that it preserves the original backtrace.
Raku highlighting
sub f () { die ' Bad ' } ;
sub g () { f ; CATCH { default { . rethrow } } } ;
g ;
CATCH { default { say . backtrace . full } } ;
Raku highlighting
multi fail ( Exception $ e )
method fail ( Exception : D : )
Exits the calling Routine
and returns a Failure
object wrapping the exception.
Raku highlighting
class ForbiddenWord is Exception {
has Str $ . word ;
method message { " This word is forbidden: « $ ! word » " }
}
sub say-word ( $ word ) {
ForbiddenWord . new ( : word ( $ word )) . fail if $ word eq ' foo ' ;
$ word . say ;
}
my $ result = say-word ( " foo " );
say $ result . exception ;
The routine form works in the same way, with an alternative syntax: fail ForbiddenWord.new(:word($word))
.
Raku highlighting
multi method gist ( Exception : D : )
Returns whatever the exception printer should produce for this exception. The default implementation returns message and backtrace separated by a newline.
Raku highlighting
my $ e = X::AdHoc . new ( payload => " This exception is pretty bad " );
try $ e . throw ;
if ( $! ) { say $! . gist ; } ;
Raku highlighting
method Failure ( Exception : D : --> Failure : D )
Available as of the 2022.06 release of the Rakudo compiler.
Coerces the Exception
into a Failure
object.
Raku highlighting
multi die ()
multi die ( * @ message )
multi die ( Exception : D $ e )
method die ( Exception : D : )
Throws a fatal Exception
. The default exception handler prints each element of the list to $*ERR
(STDERR).
If the subroutine form is called without arguments, the value of $!
variable is checked. If it is set to a .DEFINITE
value, its value will be used as the Exception
to throw if it's of type Exception
, otherwise, it will be used as payload of X::AdHoc
exception. If $!
is not .DEFINITE
, X::AdHoc
with string "Died"
as payload will be thrown.
die
will print by default the line number where it happens
However, that default behavior is governed at the Exception
level and thus can be changed to anything we want by capturing the exception using CATCH
. This can be used, for instance, to suppress line numbers.
Raku highlighting
CATCH {
default {
. payload . say
}
} ;
die " Dead "
Throws a resumable warning exception, which is considered a control exception, and hence is invisible to most normal exception handlers. The outermost control handler will print the warning to $*ERR
. After printing the warning, the exception is resumed where it was thrown. To override this behavior, catch the exception in a CONTROL
block. A quietly {...}
block is the opposite of a try {...}
block in that it will suppress any warnings but pass fatal exceptions through.
To simply print to $*ERR
, please use note
instead. warn
should be reserved for use in threatening situations when you don't quite want to throw an exception.
Type relations for Exception
raku-type-graph
X::Control
X::Control
Exception
Exception
X::Control->Exception
X::AdHoc
X::AdHoc
X::AdHoc->Exception
X::Comp
X::Comp
X::Comp->Exception
X::Anon::Augment
X::Anon::Augment
X::Anon::Augment->X::Comp
X::Anon::Augment->Exception
X::Anon::Multi
X::Anon::Multi
X::Anon::Multi->X::Comp
X::Anon::Multi->Exception
X::Assignment::RO
X::Assignment::RO
X::Assignment::RO->Exception
X::Attribute::NoPackage
X::Attribute::NoPackage
X::Attribute::NoPackage->X::Comp
X::Attribute::NoPackage->Exception
X::Attribute::Package
X::Attribute::Package
X::Attribute::Package->X::Comp
X::Attribute::Package->Exception
X::Attribute::Required
X::Attribute::Required
X::Attribute::Required->Exception
Any
Any
X::Attribute::Required->Any
MOP
MOP
X::Attribute::Required->MOP
X::Undeclared
X::Undeclared
X::Undeclared->X::Comp
X::Undeclared->Exception
X::Attribute::Undeclared
X::Attribute::Undeclared
X::Attribute::Undeclared->X::Undeclared
X::Augment::NoSuchType
X::Augment::NoSuchType
X::Augment::NoSuchType->X::Comp
X::Augment::NoSuchType->Exception
X::Syntax
X::Syntax
X::Syntax->X::Comp
X::Syntax->Exception
X::Backslash::NonVariableDollar
X::Backslash::NonVariableDollar
X::Backslash::NonVariableDollar->X::Syntax
X::Backslash::NonVariableDollar->Exception
X::Backslash::UnrecognizedSequence
X::Backslash::UnrecognizedSequence
X::Backslash::UnrecognizedSequence->X::Syntax
X::Backslash::UnrecognizedSequence->Exception
X::Bind
X::Bind
X::Bind->Exception
X::Bind::NativeType
X::Bind::NativeType
X::Bind::NativeType->X::Comp
X::Bind::NativeType->Exception
X::Bind::Slice
X::Bind::Slice
X::Bind::Slice->Exception
X::Bind::ZenSlice
X::Bind::ZenSlice
X::Bind::ZenSlice->X::Bind::Slice
X::Buf::AsStr
X::Buf::AsStr
X::Buf::AsStr->Exception
X::Buf::Pack
X::Buf::Pack
X::Buf::Pack->Exception
X::Buf::Pack::NonASCII
X::Buf::Pack::NonASCII
X::Buf::Pack::NonASCII->Exception
X::Caller::NotDynamic
X::Caller::NotDynamic
X::Caller::NotDynamic->Exception
X::Cannot::Empty
X::Cannot::Empty
X::Cannot::Empty->Exception
X::Cannot::Lazy
X::Cannot::Lazy
X::Cannot::Lazy->Exception
X::Channel::ReceiveOnClosed
X::Channel::ReceiveOnClosed
X::Channel::ReceiveOnClosed->Exception
X::Channel::SendOnClosed
X::Channel::SendOnClosed
X::Channel::SendOnClosed->Exception
X::Comp::AdHoc
X::Comp::AdHoc
X::Comp::AdHoc->X::AdHoc
X::Comp::AdHoc->X::Comp
X::Comp::AdHoc->Exception
X::Comp::Group
X::Comp::Group
X::Comp::Group->Exception
X::NYI
X::NYI
X::NYI->Exception
X::Comp::NYI
X::Comp::NYI
X::Comp::NYI->X::Comp
X::Comp::NYI->X::NYI
X::Comp::NYI->Exception
X::Trait::NotOnNative
X::Trait::NotOnNative
X::Trait::NotOnNative->Exception
X::Comp::Trait::NotOnNative
X::Comp::Trait::NotOnNative
X::Comp::Trait::NotOnNative->X::Comp
X::Comp::Trait::NotOnNative->X::Trait::NotOnNative
X::Comp::Trait::NotOnNative->Exception
X::Trait::Scope
X::Trait::Scope
X::Trait::Scope->Exception
X::Comp::Trait::Scope
X::Comp::Trait::Scope
X::Comp::Trait::Scope->X::Comp
X::Comp::Trait::Scope->X::Trait::Scope
X::Comp::Trait::Scope->Exception
X::Trait::Unknown
X::Trait::Unknown
X::Trait::Unknown->Exception
X::Comp::Trait::Unknown
X::Comp::Trait::Unknown
X::Comp::Trait::Unknown->X::Comp
X::Comp::Trait::Unknown->X::Trait::Unknown
X::Comp::Trait::Unknown->Exception
X::Composition::NotComposable
X::Composition::NotComposable
X::Composition::NotComposable->Exception
X::Constructor::Positional
X::Constructor::Positional
X::Constructor::Positional->Exception
X::ControlFlow
X::ControlFlow
X::ControlFlow->Exception
X::ControlFlow::Return
X::ControlFlow::Return
X::ControlFlow::Return->X::ControlFlow
X::Temporal
X::Temporal
X::Temporal->Exception
X::DateTime::InvalidDeltaUnit
X::DateTime::InvalidDeltaUnit
X::DateTime::InvalidDeltaUnit->X::Temporal
X::DateTime::InvalidDeltaUnit->Exception
X::DateTime::TimezoneClash
X::DateTime::TimezoneClash
X::DateTime::TimezoneClash->X::Temporal
X::DateTime::TimezoneClash->Exception
X::Declaration::Scope
X::Declaration::Scope
X::Declaration::Scope->X::Comp
X::Declaration::Scope->Exception
X::Declaration::Scope::Multi
X::Declaration::Scope::Multi
X::Declaration::Scope::Multi->X::Declaration::Scope
X::Does::TypeObject
X::Does::TypeObject
X::Does::TypeObject->Exception
X::Dynamic::NotFound
X::Dynamic::NotFound
X::Dynamic::NotFound->Exception
X::EXPORTHOW::Conflict
X::EXPORTHOW::Conflict
X::EXPORTHOW::Conflict->X::Comp
X::EXPORTHOW::Conflict->Exception
X::EXPORTHOW::InvalidDirective
X::EXPORTHOW::InvalidDirective
X::EXPORTHOW::InvalidDirective->X::Comp
X::EXPORTHOW::InvalidDirective->Exception
X::EXPORTHOW::NothingToSupersede
X::EXPORTHOW::NothingToSupersede
X::EXPORTHOW::NothingToSupersede->X::Comp
X::EXPORTHOW::NothingToSupersede->Exception
X::Eval::NoSuchLang
X::Eval::NoSuchLang
X::Eval::NoSuchLang->Exception
X::Export::NameClash
X::Export::NameClash
X::Export::NameClash->Exception
X::Hash::Store::OddNumber
X::Hash::Store::OddNumber
X::Hash::Store::OddNumber->Exception
X::HyperOp::NonDWIM
X::HyperOp::NonDWIM
X::HyperOp::NonDWIM->Exception
X::OS
X::OS
X::OS->Exception
X::IO
X::IO
X::IO->X::OS
X::IO->Exception
X::IO::Chdir
X::IO::Chdir
X::IO::Chdir->X::IO
X::IO::Chdir->Exception
X::IO::Chdir->Exception
X::IO::Chdir->Exception
X::IO::Chmod
X::IO::Chmod
X::IO::Chmod->X::IO
X::IO::Chmod->Exception
X::IO::Chmod->Exception
X::IO::Chmod->Exception
X::IO::Copy
X::IO::Copy
X::IO::Copy->X::IO
X::IO::Copy->Exception
X::IO::Copy->Exception
X::IO::Cwd
X::IO::Cwd
X::IO::Cwd->X::IO
X::IO::Cwd->Exception
X::IO::Cwd->Exception
X::IO::Dir
X::IO::Dir
X::IO::Dir->X::IO
X::IO::Dir->Exception
X::IO::Dir->Exception
X::IO::DoesNotExist
X::IO::DoesNotExist
X::IO::DoesNotExist->X::IO
X::IO::DoesNotExist->Exception
X::IO::DoesNotExist->Exception
X::IO::DoesNotExist->Exception
X::IO::Link
X::IO::Link
X::IO::Link->X::IO
X::IO::Link->Exception
X::IO::Link->Exception
X::IO::Mkdir
X::IO::Mkdir
X::IO::Mkdir->X::IO
X::IO::Mkdir->Exception
X::IO::Mkdir->Exception
X::IO::Move
X::IO::Move
X::IO::Move->X::IO
X::IO::Move->Exception
X::IO::Move->Exception
X::IO::Rename
X::IO::Rename
X::IO::Rename->X::IO
X::IO::Rename->Exception
X::IO::Rename->Exception
X::IO::Rmdir
X::IO::Rmdir
X::IO::Rmdir->X::IO
X::IO::Rmdir->Exception
X::IO::Rmdir->Exception
X::IO::Symlink
X::IO::Symlink
X::IO::Symlink->X::IO
X::IO::Symlink->Exception
X::IO::Symlink->Exception
X::IO::Unlink
X::IO::Unlink
X::IO::Unlink->X::IO
X::IO::Unlink->Exception
X::IO::Unlink->Exception
X::IO::Unlink->Exception
X::Import::MissingSymbols
X::Import::MissingSymbols
X::Import::MissingSymbols->Exception
X::Import::OnlystarProto
X::Import::OnlystarProto
X::Import::OnlystarProto->X::Comp
X::Import::OnlystarProto->Exception
X::Import::Redeclaration
X::Import::Redeclaration
X::Import::Redeclaration->X::Comp
X::Import::Redeclaration->Exception
X::Inheritance::NotComposed
X::Inheritance::NotComposed
X::Inheritance::NotComposed->Exception
X::Inheritance::Unsupported
X::Inheritance::Unsupported
X::Inheritance::Unsupported->Exception
X::Localizer::NoContainer
X::Localizer::NoContainer
X::Localizer::NoContainer->Exception
X::Method::InvalidQualifier
X::Method::InvalidQualifier
X::Method::InvalidQualifier->Exception
X::Method::NotFound
X::Method::NotFound
X::Method::NotFound->Exception
X::Method::Private::Permission
X::Method::Private::Permission
X::Method::Private::Permission->X::Comp
X::Method::Private::Permission->Exception
X::Method::Private::Unqualified
X::Method::Private::Unqualified
X::Method::Private::Unqualified->X::Comp
X::Method::Private::Unqualified->Exception
X::Mixin::NotComposable
X::Mixin::NotComposable
X::Mixin::NotComposable->Exception
X::NoDispatcher
X::NoDispatcher
X::NoDispatcher->Exception
X::Numeric::CannotConvert
X::Numeric::CannotConvert
X::Numeric::CannotConvert->Exception
X::Numeric::Real
X::Numeric::Real
X::Numeric::Real->X::Numeric::CannotConvert
X::Obsolete
X::Obsolete
X::Obsolete->X::Comp
X::Obsolete->Exception
X::OutOfRange
X::OutOfRange
X::OutOfRange->Exception
X::Package::Stubbed
X::Package::Stubbed
X::Package::Stubbed->X::Comp
X::Package::Stubbed->Exception
X::Parameter::Default
X::Parameter::Default
X::Parameter::Default->X::Comp
X::Parameter::Default->Exception
X::Parameter::InvalidType
X::Parameter::InvalidType
X::Parameter::InvalidType->X::Comp
X::Parameter::InvalidType->Exception
X::Parameter::MultipleTypeConstraints
X::Parameter::MultipleTypeConstraints
X::Parameter::MultipleTypeConstraints->X::Comp
X::Parameter::MultipleTypeConstraints->Exception
X::Parameter::Placeholder
X::Parameter::Placeholder
X::Parameter::Placeholder->X::Comp
X::Parameter::Placeholder->Exception
X::Parameter::Twigil
X::Parameter::Twigil
X::Parameter::Twigil->X::Comp
X::Parameter::Twigil->Exception
X::Parameter::WrongOrder
X::Parameter::WrongOrder
X::Parameter::WrongOrder->X::Comp
X::Parameter::WrongOrder->Exception
X::Phaser::Multiple
X::Phaser::Multiple
X::Phaser::Multiple->X::Comp
X::Phaser::Multiple->Exception
X::Phaser::PrePost
X::Phaser::PrePost
X::Phaser::PrePost->Exception
X::Placeholder::Block
X::Placeholder::Block
X::Placeholder::Block->X::Comp
X::Placeholder::Block->Exception
X::Placeholder::Mainline
X::Placeholder::Mainline
X::Placeholder::Mainline->X::Placeholder::Block
X::Placeholder::NonPlaceholder
X::Placeholder::NonPlaceholder
X::Placeholder::NonPlaceholder->X::Comp
X::Placeholder::NonPlaceholder->Exception
X::Pod
X::Pod
X::PoisonedAlias
X::PoisonedAlias
X::PoisonedAlias->X::Comp
X::PoisonedAlias->Exception
X::Proc::Async
X::Proc::Async
X::Proc::Async->Exception
X::Proc::Async::AlreadyStarted
X::Proc::Async::AlreadyStarted
X::Proc::Async::AlreadyStarted->X::Proc::Async
X::Proc::Async::AlreadyStarted->Exception
X::Proc::Async::BindOrUse
X::Proc::Async::BindOrUse
X::Proc::Async::BindOrUse->X::Proc::Async
X::Proc::Async::BindOrUse->Exception
X::Proc::Async::CharsOrBytes
X::Proc::Async::CharsOrBytes
X::Proc::Async::CharsOrBytes->X::Proc::Async
X::Proc::Async::CharsOrBytes->Exception
X::Proc::Async::MustBeStarted
X::Proc::Async::MustBeStarted
X::Proc::Async::MustBeStarted->X::Proc::Async
X::Proc::Async::MustBeStarted->Exception
X::Proc::Async::OpenForWriting
X::Proc::Async::OpenForWriting
X::Proc::Async::OpenForWriting->X::Proc::Async
X::Proc::Async::OpenForWriting->Exception
X::Proc::Async::TapBeforeSpawn
X::Proc::Async::TapBeforeSpawn
X::Proc::Async::TapBeforeSpawn->X::Proc::Async
X::Proc::Async::TapBeforeSpawn->Exception
X::Proc::Unsuccessful
X::Proc::Unsuccessful
X::Proc::Unsuccessful->Exception
X::Promise::CauseOnlyValidOnBroken
X::Promise::CauseOnlyValidOnBroken
X::Promise::CauseOnlyValidOnBroken->Exception
X::Promise::Vowed
X::Promise::Vowed
X::Promise::Vowed->Exception
X::PseudoPackage::InDeclaration
X::PseudoPackage::InDeclaration
X::PseudoPackage::InDeclaration->X::Comp
X::PseudoPackage::InDeclaration->Exception
X::Redeclaration
X::Redeclaration
X::Redeclaration->X::Comp
X::Redeclaration->Exception
X::Redeclaration::Outer
X::Redeclaration::Outer
X::Redeclaration::Outer->X::Comp
X::Redeclaration::Outer->Exception
X::Role::Initialization
X::Role::Initialization
X::Role::Initialization->Exception
X::Routine::Unwrap
X::Routine::Unwrap
X::Routine::Unwrap->Exception
X::Scheduler::CueInNaNSeconds
X::Scheduler::CueInNaNSeconds
X::Scheduler::CueInNaNSeconds->Exception
X::Seq::Consumed
X::Seq::Consumed
X::Seq::Consumed->Exception
X::Sequence::Deduction
X::Sequence::Deduction
X::Sequence::Deduction->Exception
X::Set::Coerce
X::Set::Coerce
X::Set::Coerce->Exception
X::Signature::NameClash
X::Signature::NameClash
X::Signature::NameClash->X::Comp
X::Signature::NameClash->Exception
X::Signature::Placeholder
X::Signature::Placeholder
X::Signature::Placeholder->X::Comp
X::Signature::Placeholder->Exception
X::Str::Match::x
X::Str::Match::x
X::Str::Match::x->Exception
X::Str::Numeric
X::Str::Numeric
X::Str::Numeric->Exception
X::Str::Trans::IllegalKey
X::Str::Trans::IllegalKey
X::Str::Trans::IllegalKey->Exception
X::Str::Trans::InvalidArg
X::Str::Trans::InvalidArg
X::Str::Trans::InvalidArg->Exception
X::StubCode
X::StubCode
X::StubCode->Exception
X::Syntax::AddCategorical::TooFewParts
X::Syntax::AddCategorical::TooFewParts
X::Syntax::AddCategorical::TooFewParts->X::Syntax
X::Syntax::AddCategorical::TooFewParts->Exception
X::Syntax::AddCategorical::TooManyParts
X::Syntax::AddCategorical::TooManyParts
X::Syntax::AddCategorical::TooManyParts->X::Syntax
X::Syntax::AddCategorical::TooManyParts->Exception
X::Syntax::AddCategorical::TooManyParts->Exception
X::Syntax::Argument::MOPMacro
X::Syntax::Argument::MOPMacro
X::Syntax::Argument::MOPMacro->X::Syntax
X::Syntax::Argument::MOPMacro->Exception
X::Syntax::Argument::MOPMacro->Exception
X::Syntax::Augment::Illegal
X::Syntax::Augment::Illegal
X::Syntax::Augment::Illegal->X::Syntax
X::Syntax::Augment::Illegal->Exception
X::Syntax::Augment::Illegal->Exception
X::Syntax::Augment::WithoutMonkeyTyping
X::Syntax::Augment::WithoutMonkeyTyping
X::Syntax::Augment::WithoutMonkeyTyping->X::Syntax
X::Syntax::Augment::WithoutMonkeyTyping->Exception
X::Syntax::Augment::WithoutMonkeyTyping->Exception
X::Syntax::BlockGobbled
X::Syntax::BlockGobbled
X::Syntax::BlockGobbled->X::Syntax
X::Syntax::BlockGobbled->Exception
X::Syntax::BlockGobbled->Exception
X::Syntax::CannotMeta
X::Syntax::CannotMeta
X::Syntax::CannotMeta->X::Syntax
X::Syntax::CannotMeta->Exception
X::Syntax::CannotMeta->Exception
X::Syntax::Comment::Embedded
X::Syntax::Comment::Embedded
X::Syntax::Comment::Embedded->X::Syntax
X::Syntax::Comment::Embedded->Exception
X::Syntax::Confused
X::Syntax::Confused
X::Syntax::Confused->X::Syntax
X::Syntax::Confused->Exception
X::Syntax::Confused->Exception
X::Syntax::Extension::Category
X::Syntax::Extension::Category
X::Syntax::Extension::Category->X::Syntax
X::Syntax::Extension::Category->Exception
X::Syntax::Extension::Category->Exception
X::Syntax::Extension::Null
X::Syntax::Extension::Null
X::Syntax::Extension::Null->X::Syntax
X::Syntax::Extension::Null->Exception
X::Syntax::Extension::Null->Exception
X::Syntax::InfixInTermPosition
X::Syntax::InfixInTermPosition
X::Syntax::InfixInTermPosition->X::Syntax
X::Syntax::InfixInTermPosition->Exception
X::Syntax::InfixInTermPosition->Exception
X::Syntax::KeywordAsFunction
X::Syntax::KeywordAsFunction
X::Syntax::KeywordAsFunction->X::Syntax
X::Syntax::KeywordAsFunction->Exception
X::Syntax::Malformed
X::Syntax::Malformed
X::Syntax::Malformed->X::Syntax
X::Syntax::Malformed->Exception
X::Syntax::Malformed::Elsif
X::Syntax::Malformed::Elsif
X::Syntax::Malformed::Elsif->X::Syntax
X::Syntax::Malformed::Elsif->Exception
X::Syntax::Malformed::Elsif->Exception
X::Syntax::Missing
X::Syntax::Missing
X::Syntax::Missing->X::Syntax
X::Syntax::Missing->Exception
X::Syntax::Name::Null
X::Syntax::Name::Null
X::Syntax::Name::Null->X::Syntax
X::Syntax::Name::Null->Exception
X::Syntax::NegatedPair
X::Syntax::NegatedPair
X::Syntax::NegatedPair->X::Syntax
X::Syntax::NegatedPair->Exception
X::Syntax::NoSelf
X::Syntax::NoSelf
X::Syntax::NoSelf->X::Syntax
X::Syntax::NoSelf->Exception
X::Syntax::NonAssociative
X::Syntax::NonAssociative
X::Syntax::NonAssociative->X::Syntax
X::Syntax::NonAssociative->Exception
X::Syntax::NonAssociative->Exception
X::Syntax::Number::RadixOutOfRange
X::Syntax::Number::RadixOutOfRange
X::Syntax::Number::RadixOutOfRange->X::Syntax
X::Syntax::Number::RadixOutOfRange->Exception
X::Syntax::P5
X::Syntax::P5
X::Syntax::P5->X::Syntax
X::Syntax::P5->Exception
X::Syntax::P5->Exception
X::Syntax::Perl5Var
X::Syntax::Perl5Var
X::Syntax::Perl5Var->X::Syntax
X::Syntax::Perl5Var->Exception
X::Syntax::Perl5Var->Exception
X::Syntax::Pod::BeginWithoutEnd
X::Syntax::Pod::BeginWithoutEnd
X::Syntax::Pod::BeginWithoutEnd->X::Syntax
X::Syntax::Pod::BeginWithoutEnd->X::Pod
X::Syntax::Pod::BeginWithoutEnd->Exception
X::Syntax::Pod::BeginWithoutEnd->Exception
X::Syntax::Pod::BeginWithoutIdentifier
X::Syntax::Pod::BeginWithoutIdentifier
X::Syntax::Pod::BeginWithoutIdentifier->X::Syntax
X::Syntax::Pod::BeginWithoutIdentifier->X::Pod
X::Syntax::Pod::BeginWithoutIdentifier->Exception
X::Syntax::Pod::BeginWithoutIdentifier->Exception
X::Syntax::Regex::Adverb
X::Syntax::Regex::Adverb
X::Syntax::Regex::Adverb->X::Syntax
X::Syntax::Regex::Adverb->Exception
X::Syntax::Regex::Adverb->Exception
X::Syntax::Regex::MalformedRange
X::Syntax::Regex::MalformedRange
X::Syntax::Regex::MalformedRange->X::Syntax
X::Syntax::Regex::MalformedRange->Exception
X::Syntax::Regex::MalformedRange->Exception
X::Syntax::Regex::NullRegex
X::Syntax::Regex::NullRegex
X::Syntax::Regex::NullRegex->X::Syntax
X::Syntax::Regex::NullRegex->Exception
X::Syntax::Regex::NullRegex->Exception
X::Syntax::Regex::SolitaryQuantifier
X::Syntax::Regex::SolitaryQuantifier
X::Syntax::Regex::SolitaryQuantifier->X::Syntax
X::Syntax::Regex::SolitaryQuantifier->Exception
X::Syntax::Regex::SolitaryQuantifier->Exception
X::Syntax::Regex::SpacesInBareRange
X::Syntax::Regex::SpacesInBareRange
X::Syntax::Regex::SpacesInBareRange->X::Syntax
X::Syntax::Regex::SpacesInBareRange->Exception
X::Syntax::Regex::SpacesInBareRange->Exception
X::Syntax::Regex::UnrecognizedMetachar
X::Syntax::Regex::UnrecognizedMetachar
X::Syntax::Regex::UnrecognizedMetachar->X::Syntax
X::Syntax::Regex::UnrecognizedMetachar->Exception
X::Syntax::Regex::UnrecognizedMetachar->Exception
X::Syntax::Regex::Unspace
X::Syntax::Regex::Unspace
X::Syntax::Regex::Unspace->X::Syntax
X::Syntax::Regex::Unspace->Exception
X::Syntax::Regex::Unspace->Exception
X::Syntax::Regex::Unterminated
X::Syntax::Regex::Unterminated
X::Syntax::Regex::Unterminated->X::Syntax
X::Syntax::Regex::Unterminated->Exception
X::Syntax::Reserved
X::Syntax::Reserved
X::Syntax::Reserved->X::Syntax
X::Syntax::Reserved->Exception
X::Syntax::Reserved->Exception
X::Syntax::Self::WithoutObject
X::Syntax::Self::WithoutObject
X::Syntax::Self::WithoutObject->X::Syntax
X::Syntax::Self::WithoutObject->Exception
X::Syntax::Signature::InvocantMarker
X::Syntax::Signature::InvocantMarker
X::Syntax::Signature::InvocantMarker->X::Syntax
X::Syntax::Signature::InvocantMarker->Exception
X::Syntax::Signature::InvocantMarker->Exception
X::Syntax::Term::MissingInitializer
X::Syntax::Term::MissingInitializer
X::Syntax::Term::MissingInitializer->X::Syntax
X::Syntax::Term::MissingInitializer->Exception
X::Syntax::Term::MissingInitializer->Exception
X::Syntax::UnlessElse
X::Syntax::UnlessElse
X::Syntax::UnlessElse->X::Syntax
X::Syntax::UnlessElse->Exception
X::Syntax::UnlessElse->Exception
X::Syntax::Variable::IndirectDeclaration
X::Syntax::Variable::IndirectDeclaration
X::Syntax::Variable::IndirectDeclaration->X::Syntax
X::Syntax::Variable::IndirectDeclaration->Exception
X::Syntax::Variable::IndirectDeclaration->Exception
X::Syntax::Variable::Match
X::Syntax::Variable::Match
X::Syntax::Variable::Match->X::Syntax
X::Syntax::Variable::Match->Exception
X::Syntax::Variable::Match->Exception
X::Syntax::Variable::Numeric
X::Syntax::Variable::Numeric
X::Syntax::Variable::Numeric->X::Syntax
X::Syntax::Variable::Numeric->Exception
X::Syntax::Variable::Numeric->Exception
X::Syntax::Variable::Twigil
X::Syntax::Variable::Twigil
X::Syntax::Variable::Twigil->X::Syntax
X::Syntax::Variable::Twigil->Exception
X::Syntax::Variable::Twigil->Exception
X::Syntax::VirtualCall
X::Syntax::VirtualCall
X::Syntax::VirtualCall->X::Syntax
X::Syntax::VirtualCall->Exception
X::Temporal::InvalidFormat
X::Temporal::InvalidFormat
X::Temporal::InvalidFormat->X::Temporal
X::Temporal::InvalidFormat->Exception
X::TypeCheck
X::TypeCheck
X::TypeCheck->Exception
X::TypeCheck::Assignment
X::TypeCheck::Assignment
X::TypeCheck::Assignment->X::TypeCheck
X::TypeCheck::Binding
X::TypeCheck::Binding
X::TypeCheck::Binding->X::TypeCheck
X::TypeCheck::Return
X::TypeCheck::Return
X::TypeCheck::Return->X::TypeCheck
X::TypeCheck::Splice
X::TypeCheck::Splice
X::TypeCheck::Splice->X::TypeCheck
X::Undeclared::Symbols
X::Undeclared::Symbols
X::Undeclared::Symbols->X::Comp
X::Undeclared::Symbols->Exception
X::Value::Dynamic
X::Value::Dynamic
X::Value::Dynamic->X::Comp
X::Value::Dynamic->Exception
Exception->Any
Mu
Mu
Any->Mu
Expand chart above