関数順 インデックス
目的別 インデックス

構文
 
 no モジュール名 バージョン リスト
 no モジュール名 バージョン
 no モジュール名 リスト
 no モジュール名

返り値
 
 なし

説明

  • 指定したモジュール名を無効にします。
  • モジュール名の後ろにバージョンを指定した場合,モジュール名のバージョンと比較してモジュール名のバージョンが古い場合エラーになります。

使用例

実行時にサブルーチンfooを再定義する
#!/usr/bin/perl
use strict;
use warnings;

my $hoge = foo(100);
print $hoge, "\n"; # 200

define('foo');

my $fuga = foo(100);
print $fuga, "\n"; # 50

sub foo {
  my $val = shift;
  
  return $val * 2;
}

# サブルーチンを定義する
sub define {
  my $method = shift;
  
# シンボルテーブルの操作を可能にする
  no strict 'refs';

# サブルーチンの再定義の警告を抑制する
  no warnings 'redefine'; 
  
  *{"main::$method"} = sub {
    my $val = shift;
    return $val / 2;
  };
}
再帰を使ったFizzBuzz(1から100まで数え,3で割り切れる場合はFizz,5で割り切れる場合はBuzz,3と5で割り切れる場合はFizzBuzzを数字の代わりに表示する)
#!/usr/bin/perl
use strict;
use warnings;

fizzbuzz(100);

sub fizzbuzz {

 # 再帰の警告を抑制する
  no warnings 'recursion'; 
  
  my $n = shift;
  
  return if $n == 0;
  fizzbuzz($n - 1);
  
  if ($n % 15 == 0) {
    print "FizzBuzz\n";
  } elsif ($n % 5 == 0) {
    print "Buzz\n";
  } elsif ($n % 3 == 0) {
    print "Fizz\n";
  } else {
    print "$n\n";
  }
}