ゆるゆる〜tech ver〜

勉強したこととかかく

Perlのパイプと斜線

||はundefも空文字も同じ扱いで右辺が評価される。

//はundefなら右辺が評価される。

基本的に雰囲気で書いているから「Perl ななめ」とか「Perl 斜線」で出てこないからあれ?ってなる

#!/usr/bin/env perl
use strict;
use warnings;
use utf8;

my $undef = undef;
my $empty = '';

## //
{   
    my $test1 = $undef // 'test1!!';
    my $test2 = $empty // 'test2!!';
    
    print "Test 1 is " . $test1 . "\n";
    print "Test 2 is " . $test2 . "\n";
    
    #Test 1 is test1!!
    #Test 2 is
}

## ||
{
    my $test1 = $undef || 'test1!!';
    my $test2 = $empty || 'test2!!';

    print "Test 1 is " . $test1 . "\n";
    print "Test 2 is " . $test2 . "\n";

    #Test 1 is test1!!
    #Test 2 is test2!!
}

## //= は//と同じ
{
    my $test1 = $undef //= 'test1!!';
    my $test2 = $empty //= 'test2!!';

    print "Test 1 is " . $test1 . "\n";
    print "Test 2 is " . $test2 . "\n";

    #Test 1 is test1!!
    #Test 2 is
}

## ||= は ||と同じ
{
    my $test1 = $undef ||= 'test1!!';
    my $test2 = $empty ||= 'test2!!';

    print "Test 1 is " . $test1 . "\n";
    print "Test 2 is " . $test2 . "\n";

    #Test 1 is test1!!
    #Test 2 is test2!!
}