Skip to Content
Perl Pocket Reference, 5th Edition
book

Perl Pocket Reference, 5th Edition

by Johan Vromans
July 2011
Intermediate to advanced
104 pages
2h 14m
English
O'Reilly Media, Inc.
Content preview from Perl Pocket Reference, 5th Edition

Smartmatching

Note: Smartmatching is a relatively new feature and several aspects of its peculiar behavior may change in subsequent Perl releases.

expr1 ~~ expr2

Smartmatches expr2 against expr1.

when ( expr )

In most cases, smartmatches $_ against expr.

In other cases, treats expr as a boolean expression.

The behavior of a smartmatch depends on what type of thing its arguments are. The behavior is determined by the following table: the first row that applies determines the match behavior (which is thus mostly determined by the type of the right operand). Note that the smartmatch implicitly dereferences any nonblessed hash or array ref, so the Hash and Array entries apply in those cases. For blessed references, the Object entries apply.

Left

Right

Type of match implied

Any

undef

Undefinedness.

Any

Object

Invokes ~~ overloading on the object, or dies.

Hash

CodeRef

Sub truth for each key; true if hash is empty.

Array

CodeRef

Sub truth for each element; true if array is empty.

Any

CodeRef

Scalar sub truth.

Hash

Hash

True if every key is found in both hashes.

Array

Hash

Hash keys intersection.

Regex

Hash

Hash key grep.

undef

Hash

Always false.

Any

Hash

Hash entry existence.

Hash

Array

Hash Keys Intersection.

Array

Array

Smartmatches corresponding elements.

Regex

Array

Array grep.

undef

Array

Array contains undef.

Any

Array

Match against an array element.

Hash

Regex

Hash key grep.

Array

Regex

Array grep.

Any

Regex

Pattern match.

Object

Any

Invokes ~~ overloading on the object, or falls back.

Any

Num

Numeric equality.

Num

Num-alike

Numeric equality if it ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Perl Testing: A Developer's Notebook

Perl Testing: A Developer's Notebook

Ian Langworth, Chromatic
Perl in a Nutshell

Perl in a Nutshell

Nathan Patwardhan, Ellen Siever, Stephen Spainhour
Perl Hacks

Perl Hacks

Chromatic, Damian Conway, Curtis Ovid Poe, Curtis (Ovid) Poe
Perl Best Practices

Perl Best Practices

Damian Conway

Publisher Resources

ISBN: 9781449311186Errata Page