Perl

| この項目では、Perlとしての最新バージョンであるバージョン5系までのPerlについて説明しています。当初Perl 6として設計が始められたプログラミング言語については「Raku」をご覧ください。

|

Perl

Perlのロゴ

パラダイム|  マルチパラダイムプログラミング
登場時期|  1987年 (38年前) (1987)
開発者|  ラリー・ウォール、Perl財団
最新リリース|  5.42.0[1] / 2025年7月3日 (11日前)
型付け|  動的型付け
影響を受けた言語|  C++、C言語、sed、AWK、BASIC、LISP、Unixシェル
影響を与えた言語|  JavaScript、PHP、Python、Ruby、PowerShell
プラットフォーム|  Linux、macOS、Microsoft Windows、Solaris、AIX、HP-UX
ライセンス|  Artistic License、GPL 1.0かそれ以降
ウェブサイト|  www.perl.org
テンプレートを表示

プログラミング言語

>>他のプログラミング言語

■カテゴリ / ■テンプレート

Perl（パール）とは、ラリー・ウォールによって開発されたプログラミング言語である。実用性と多様性を重視しており、C言語やsed、AWK、UNIXのシェルスクリプトなど他のプログラミング言語の優れた機能を取り入れている。ウェブ・アプリケーション、システム管理、テキスト処理など、さまざまなプログラムの開発に広く利用されている。

言語処理系としてのperlは自由ソフトウェアである。Artistic LicenseおよびGPLのもとで配布されており、誰でもどちらかのライセンスを選択して利用することができる。UNIX、Windows、macOSやLinuxのようなUNIX互換OSなど多くのプラットフォーム上で動作する。

## 特徴

[編集]

* 強力な文字列処理の仕組みを備えており、正規表現を利用できる。
* 連想配列（ハッシュ）をサポート。
* 多次元データ構造が利用可能。
* 自由度の高い文法。簡潔にプログラムを記述できる。
* 後方互換性は高い。
* 数多くのオペレーティングシステムで利用可能である。
* インタプリタであり、コードを利用者がコンパイルする仕組みはない。
* スクリプト言語の中では高い処理速度を持つ。
* Unicode使用を支援する仕組みがある。
* モジュールによる拡張が可能であり、有志によって開発された豊富なモジュールを利用できる（CPANを参照）。
* オブジェクト指向を支援する仕組みがある。
* リファレンスカウント方式によるガーベッジコレクションの仕組みがある。
* 例外処理を利用できる。
* クロージャを利用できる。
* リフレクションを利用できる。

## Hello world

[編集]

→「Hello world」を参照

print "Hello, world!\n" ;

## モジュール

[編集]

Perlプログラムには、モジュールによって機能を付加することができる。たとえば、他のプログラムやネットワークとの通信、各種ファイル形式の取り扱い、数学的な計算など、数多くのモジュールが存在する。PerlにはCPANというモジュールを体系的に管理するインターネット上のシステムがある。インターネットに接続していれば、CPANにアクセスして、モジュールをインストールすることが可能である。

→詳細は「CPAN」を参照

### 標準モジュール

[編集]

Perlには標準で利用できるモジュールが数多く存在する。一部を以下に挙げる。

* base \- 派生元モジュールを指定するのに用いる。
* Benchmark \- ベンチマーク
* Carp \- 呼び出し元の観点で例外を発生
* Cwd \- カレントディレクトリのパスを取得
* Data::Dumper \- 変数の内容を出力
* Digest::MD5 \- MD5値
* Digest::SHA \- SHA-1/224/256/384/512
* Encode \- 文字列のエンコード・デコード
* Exporter \- 関数のエクスポート
* File::Basename \- ファイルのベース名とディレクトリ名の取得
* File::Copy \- ファイルの移動とコピー
* File::Path \- 複数階層のディレクトリの作成と削除
* File::Spec \- ファイル名に対する移植性のある処理
* File::Temp \- 一時ファイルの生成
* FindBin \- スクリプトが存在するディレクトリのパスの取得
* Getopt::Long \- コマンドライン引数の処理
* IO::Socket::INET \- ソケット
* lib \- モジュールの検索パスを追加
* List::Util \- 配列に対する処理
* Net::FTP \- FTPクライアント
* Scalar::Util \- スカラ値のユーティリティ
* Storable \- データの直列化
* Sys::Hostname \- ホスト名の取得
* Time::Piece \- 日付・時刻の扱い
* utf8 \- utf8プラグマ

### 代表的なCPANモジュール

[編集]

テキスト処理

* Text::CSV \- CSVファイルの解析
* Text::Diff \- diffコマンド
* Template Toolkit \- テンプレートシステム

データベース

* DBI \- 汎用データベースインタフェース

Webアプリケーション

* CGI \- CGIプログラミング
* Plack \- PSGIのリファレンス実装
* Mojolicious \- Webフレームワーク
* Catalyst \- Webアプリケーションフレームワーク

Webアクセス

* LWP::UserAgent \- WWWクライアント

データ記述言語の処理

* XML::Simple \- XMLをPerlのデータ構造に変換
* XML::LibXML \- XMLのサポート
* JSON \- JSONのサポート
* YAML \- YAMLのサポート

## 歴史

[編集]

Perlの歴史  バージョン | 公開日 | 内容

|
|

1.0  | 1987年12月18日  |

* 6台の VAX 機と6台の Sun 機のためのコンフィギュレーション管理制御システムのレポート作成ツールとして誕生した。

2.0  | 1988年6月05日  |

* ヘンリー・スペンサー作の美しい正規表現ライブラリを Perl 風にアレンジし、導入した。

3.0  | 1989年10月18日  |

* バイナリデータを処理できるようになった。

4.0  | 1991年3月21日  |

* O'Reilly&Associates, Inc. より Programming perl が発売されたのに合わせて公開された。

5.0  | 1994年10月17日  |

* レキシカル変数 my の導入
* リファレンスおよびオブジェクト指向に対応。
* `use`が導入され追加モジュールの取扱いが大幅に強化された。
* strictプラグマの導入

5.5.0  | 1998年7月22日  |

* 正規表現の拡張、`B::*`モジュールによるフックのサポート、`qr//` 正規表現演算子の追加がなされた。
* BeOS を含む幅広いオペレーティングシステムに移植された。
* 日本語圏で最も重要なことは、このバージョンが JPerl がサポートする最後のバージョンということである。したがって、日本語情報処理において2022年においてもなお、バージョン 5.005_03 は利用されている。

5.6.0  | 2000年5月22日  |

* `our`文やウィークリファレンス、`warnings`プラグマの導入など、言語コアが大きく拡張された。
* 試験的ながら Unicode のサポートを開始した最初のバージョン。
* バージョン番号の構造を変更。サブバージョン（5.6.0の6に相当）が偶数のものが安定版、奇数のものが開発版を意味する。

5.8.0  | 2002年7月18日  |

* 5.8系列の最新版は5.8.9（2008年12月14日）。
* 汎用文字エンコーディング操作モジュール `Encode` が標準ライブラリに加えられ、Unicodeおよび Shift_JIS などの様々な文字エンコーディングに正式に対応した。
* スレッドや`PerlIO`レイヤが導入された。

5.10.0  | 2007年12月18日  |

* 公開日は Perl 1.0 の公開からちょうど20年目にあたる。
* 静的変数を宣言する `state` 文や、switch文に相当する `given` 文、`say` などの言語拡張が導入された。
* 新しいキーワードの導入による互換性の問題に対処するため、新しいキーワードの導入を `feature` プラグマで制御できるようになった。

5.12.0  | 2010年4月13日  |

* `package` のバージョン指定構文や未実装部分を表す`...`演算子（ヤダヤダ演算子）、後置の `when` 修飾子などが導入された。
* 日付と時刻に関するコアモジュールが2038年問題に対応した。

5.14.0  | 2011年5月14日  |

* Unicode 6.0 にほぼ完全に対応。
* IPv6サポートの改善。
* `push`、`pop`、`unshift`、`shift`、`each`、`keys`、`values` などの配列やハッシュを受け取る関数が、リファレンスを受け取ることができるようになった。
* `package パッケージ名 { ... }`構文の追加。
* 値を破壊せずに戻り値として返す正規表現オプション`r`が追加。

5.16.0  | 2012年5月20日  |

* `use バージョン番号`文の動作が変更された。以前はスクリプトの実行に必要なPerlのバージョンを示すものだったが、「指定したバージョンよりも新しいバージョンの Perl で新たに実装された機能を無効化する」という動作になった。
* `__SUB__`は現在実行中のサブルーチンに対する参照を返す。
* `feature` プラグマで`unicode_eval`を有効にすると、文字列に対する `eval` は常に文字列を Unicode として扱う。また`evalbytes`を有効にすると、引数をバイト列として評価する`evalbytes`関数が利用できる。
* `substr` は、左辺値もしくは潜在的に左辺値とみられるコンテキストで2つもしくは3つの引数付きで呼び出された場合、第一引数を変更する特殊な左辺値スカラを返す。
* Unicode 6.1 対応も強化された。
* デバッガ、`CORE`名前空間、`XS`インターフェイスなどでさまざまな機能強化が加わっている。

5.18.0  | 2013年5月18日  |

* 実験的機能を利用するための新しい警告カテゴリ`experimental::feature_name`が追加され、Perl 5.10 で加わったスマートマッチ演算子、レキシカルな`$_`がそのカテゴリに変更された。
* ハッシュの際に使われるシードがランダム化され、`keys` や `values`、`each` といったハッシュを利用する関数が返すキー／値の並び順が実行毎に異なるようになった。
* Unicode 6.2 への対応、新しい`DTrace`プローブの追加、実験的機能としてレキシカルサブルーチンの追加などが行われた。`\N{...}`表現の扱いがいくつか変わっているほか、垂直タブがホワイトスペースとして扱われなくなっている点など、文字の扱いについていくつかの変更が加わった。
* `encoding`、`CPANPLUS`、`Log::Message`、`Log::Message::Config`、`Log::Message::Handlers`、`Log::Message::Item`、`Log::Message::Simple`、`Object::Accessor`などが廃止予定のモジュールとなった。

5.20.0  | 2014年5月27日  |

* 実験的機能として`use feature 'signature'`によるサブルーチンシグネチャ、`use feature 'postderef'`によるPostfix Dereferencingと呼ばれる機能が追加された。Postfix Dereferencingを利用すると、いままで`${ $sref } `のように表記していたものが`$sref->$* `のように表記できるようになる。
* 新たなスライス表記として、キーと値のペアを戻す`%hash{…}`と`%array[…]`というスライス表記が加わった。
* subキーワードのprototype属性がサポートされ、プロトタイプパーシングの一貫性も強化された。
* 64ビットプラットフォーム対応が改善され、Perl配列が2**31以上の要素を保持できるようになった。
* 正規表現エンジンは2**31以上の文字列に対応できるようになった。
* Unicode 6.3 に対応した。
* コアモジュールとして`IO::Socket::IP`が追加された。
* rand関数の仕様が変更された。
* 一部のコマンドラインオプションの挙動が変更された。

5.22.0  | 2015年6月1日  |

* ビット単位の演算子が導入された。
* ダブルダイアモンド演算子が導入された。
* 正規表現の`\b`バウンダリの機能が強化された。
* 正規表現のキャプチャしない修飾子が追加された。
* `use re 'strict'`がサポートされた。
* Unicode 7.0がサポートされた。
* POSIX 2008のロケール、通貨がサポートされた。
* 古いプラットフォーム上のUTF-8判定が改善された。
* リファレンスのエイリアスがサポートされた。
* 引数なしのプロトタイプがサポートされた。
* サブルーチンの`const`アトリビュートがサポートされた。
* `fileno`にディレクトリハンドルも指定可能になった。
* Win32でリスト形式のパイプオープンが可能になった。
* リスト代入の繰返し指定が可能になった。
* `Inf`と`Nan`の扱いが強化された。
* 浮動小数点数の扱いが強化された。
* `Inf`と`NaN`の文字列化は致命的エラーになった。
* 実験的なCバックトレースAPIがサポートされた。

5.24.0  | 2016年5月9日  |

* サブルーチンと数値計算が高速化された。
* Unicode 8.0 がサポートされた。
* 実験的な扱いだった前方デリファレンスが本格サポートされた。

5.26.0  | 2017年5月30日  |

* Unicode 9.0 がサポートされた。
* セキュリティ対策として特殊変数 @INC は、デフォルトではカレントディレクトリ "." を含まなくなった。
* 実験的な扱いだったレキシカルサブルーチンが本格サポートされた。
* インデントされたヒヤドキュメントがサポートされた。
* 新しい正規表現修飾子 /xx がサポートされた。
* 正規表現の特殊変数として @{^CAPTURE}、 %{^CAPTURE}、%{^CAPTURE_ALL} が追加された。
* OS側で対応していれば、UTF-8 ロケールでデフォルトの照合を使えるようになった。

5.28.0  | 2018年6月22日  |

* Unicode 10.0 がサポートされた。
* delete 関数がキー/値のハッシュスライスに使えるようになった。
* 実験的機能として、正規表現アサートの英字名が利用可能になった。
* 実験的機能として、Unicode 用字の混合が検出できるようになった。
* perl -i によるインプレース編集がより安全になった。
* state 宣言された配列変数、ハッシュ変数が初期化できるようになった。
* OSが扱うiノード番号をフルサイズで扱えるようになった。
* sprintf 関数のフォーマットサイズ修飾子 %j は C99以前のコンパイラでも使用できるようになった。
* Close-on-exec フラグはアトミックに設定されるようになった。
* 文字列および数値のビット演算子は実験的ではなくなった。
* OSがロケールに対応している場合、スレッド環境でもロケールを自由に使用・変更できるようになった。
* 特殊変数 ${^SAFE_LOCALES} が追加された。
* 多数のセキュリティ上の修正が行われた。

5.30.0  | 2019年5月22日  |

* Unicode 12.1をサポート。

5.32.0  | 2020年6月20日  |

* 演算子 isa をサポート。

5.34.0  | 2021年5月20日  |

* 実験的機能として`use feature 'try'`によるtry/catch構文が追加された。
* 正規表現の繰り返し構文 `qr/{,n}/`において下限の省略が可能になった。
* これまでは正規表現の中括弧の中にスペースを含むことができなかったが、`\x{ FFFC }`のようにスペースを含むことが可能になった。
* `0oddddd`のような8進数表記が可能になった。

5.36.0  | 2022年5月28日  |

* Unicode 14.0 に対応した。
* use v5.36 の記述により Perl7 で提案されていた機能の大部分がサポートされた。
* コマンドラインフラグ -g が導入された。
* 正規表現の拡張ブラケット文字クラスは実験的とは見なされなくなった。
* 正規表現の可変長の後読みは、ほとんど実験的とは見なされなくなった。
* 浮動小数点例外のシグナル SIGFPE が遅延しなくなった。
* ブール値 true/false がサポートされた。
* 実験的機能として、for ループの1回の処理で複数の値を扱えるようになった。
* 実験的機能として、組み込み関数が追加された。
* 実験的機能として、defer ブロックがサポートされた。
* 実験的機能として、try/catch 構文に finally ブロックが利用できるようになった。
* 実験的機能として、Unicode による対になるデリミタが多数サポートされた。
* サブルーチンシグネチャ付きのサブルーチンの @_ は実験的になった。

5.38.0  | 2023年7月02日  |

* `class`構文が追加された。
* Unicode 15.0 に対応した。
* 非推奨の警告には特定のサブカテゴリが追加された。
* %{^HOOK} APIが導入された。
* PERL_RAND_SEED
* シグネチャでのDefined-orおよびlogical-or代入のデフォルト式がサポートされた。
* @INCフックの強化と$INCおよびINCDIR
* deferまたはfinallyブロックからの制御フローがコンパイル時に検出されるようになった。
* パターン内での楽観的な評価
* REG_INFが65,536から2,147,483,647に引き上げられた。
* 新しいAPI関数optimize_optreeおよびfinalize_optreeが追加された。
* 一部のgoto文がdeferおよびfinallyブロックで許可されるようになった。
* 新しい正規表現変数${^LAST_SUCCESSFUL_PATTERN}が追加された。
* 参加プラットフォームでLocaleカテゴリLC_NAMEがサポートされるようになった。

5.40.0  | 2024年6月9日  |

* 定数式のコンパイル時畳み込みが拡張された。
* 新しい警告とエラーチェック機能が追加され、静的解析と実行時チェックが強化された。
* マルチディスパッチのサポートが改善され、複数のシグネチャを持つ関数やメソッドの定義が容易になった。
* `JSON::PP`や`CPAN::Meta::YAML`など、コアモジュールが最新バージョンにアップデートされた。
* `%{^HOOK}` の強化により、フックの使用が柔軟になった。
* Perlの内部構造が最適化され、特に大規模なデータ操作や複雑な正規表現のパフォーマンスが向上した。
* 新しいAPI関数`optimize_optree`と`finalize_optree`が追加され、コンパイラの最適化が強化された。
* 正規表現関連で`REG_INF`の値が2,147,483,647まで引き上げられた。
* Perlの一部プラットフォームで、`Locale`カテゴリの`LC_ADDRESS`がサポートされた。

## エピソード

[編集]

ラリー・ウォールは敬虔なクリスチャンであったため、Perlは当初、新約聖書のマタイによる福音書13章46節の「高価な真珠」にちなんで、真珠を意味する「pearl」と名付けられた[2]。ラリーは肯定的な意味を持つ短い名前を選びたいと考えていて、彼によれば3文字および4文字の単語を辞書から探したが良いのが見つからなかったということである。また、彼は妻のグロリアにちなんで名前を付けることも考えたが、家族の会話でまぎらわしいために却下となった。

Perlの正式なリリースの前に、ラリーはすでに「PEARL」という名前のプログラミング言語が存在することに気づき、綴りを変更して「Perl」とした[2]。このようにPerlという名前は何らかの略語ではないが、あとからいくつかのバクロニムが考えられている。開発者ラリー自身によると、「practical extraction and report language」（実用的なデータ取得レポート作成言語）という意味を持ち、同時に 「pathologically eclectic rubbish lister」（病的折衷主義のガラクタ出力装置）[3]という少し皮肉な意味も込められている。

## 処理系

[編集]

Perlという名称の記述においては、若干の注意が必要である。プログラミング言語としてのPerlを示すときは「Perl」というように、頭文字を大文字にして固有名詞であることをはっきりさせる。この「Perl」という表記では処理系のことは含まれない。Perl 5の現在開発されている唯一の処理系は「perl」という、すべて小文字で記述される名前の処理系である。一般に「perlだけがPerlを解釈することができる」という表現がなされる。「PERL」のようにすべてを大文字にするのは誤りである。

このようにPerl 5現在において、Perlとは言語の名前であると同時に唯一の処理系の名前でもある。この処理系はC言語で書かれている。スクリプトは実行前に仮想機械向けにコンパイルされ、コンパイルされたバイトコードが実行される（ランタイムコンパイル）。そのため、厳密にはインタプリタとは異なる。

Pythonのように一旦生成したバイトコードを保存して再利用することは少ないが、これは現在のPerlのランタイムコンパイルが高速で、バイトコードから実行するメリットがあまりないことが理由の一つである。コンパイル済みコードの再利用としてはむしろmod_perlのような形式が好まれている。

PAR (Perl Archive Toolkit) というPerlスクリプトを実行環境ごとアーカイブし、単一のファイルにまとめるためのツールキットも存在する。JARのPerl版と考えてよい。実行可能ファイルを作ることもできるため、アプリケーションの配布に適する。しかしその場合はPerl実行環境をまるごと含むため、ファイルサイズが大きくなる傾向にある。

Perlの姉妹言語としてRaku (旧 Perl 6) が存在する。RakuはParrotというバーチャルマシンの上で動作する。現在、ParrotCodeへのコンパイルを行うRakudo Starという処理系やHaskellで書かれたPugsという処理系などの複数の実装が公開されている。なおRakuはPerlと互換性を持たない。

## Perlが利用されているアプリケーション

[編集]

Perlが利用されている代表的なWeb アプリケーションや管理ツール。

### Webアプリケーション

[編集]

* Movable Type
* TWiki
* Bugzilla
* cPanel

### Webサービス

[編集]

* DuckDuckGo

### 管理ツール

[編集]

* git
* openssl
* autoconf
* automake
* SpamAssassin
* VmwareTools
* MySQL innotop

## 脚注

[編集]

[脚注の使い方]

1. ^ "Perl v5.42.0 is now available!"; 閲覧日: 2025年7月3日; 出版日: 2025年7月3日.
2. ^ a b “Scripting on the Lido Deck | WIRED”. web.archive.org (2016年3月7日). 2022年7月29日閲覧。
3. ^ プログラミング Perl VOLUME 1 ISBN 4-87311-096-3

## 参考文献

[編集]

* ラリー・ウォール、ジョン・オーワント、トム・クリスチャンセン著、近藤嘉雪訳『プログラミング Perl』VOLUME 1 (ISBN 4-87311-096-3), 2 (ISBN 4-87311-097-1), オライリー・ジャパン、2002年

## 関連項目

[編集]

ポータル FOSS

* ラリー・ウォール
* Artistic License
* グルー言語
* スクリプト言語
* 軽量プログラミング言語

## 外部リンク

[編集]

ウィキブックスにPerl関連の解説書・教科書があります。

* 公式ウェブサイト
* Perl programming documentation \- Perlの公式ドキュメント
* perldoc.jp \- Perlの公式ドキュメントの日本語訳
* CPAN \- Perlのモジュールの配布を行うサイト
* Perl.com \- オライリーによるPerlのウェブサイト
* ActivePerl \- ActiveState社のPerlディストリビューション。Win32版はWindows環境で最も利用される。
* Chocolate Perl \- Perlのディストリビューションのひとつ
* Strawberry Perl \- Perlのディストリビューションのひとつ
* PSGI/Plack \- WSGIのPerlによる実装
* Japan Perl Association \- YAPC::Asiaを主催する一般社団法人

* 表
* 話
* 編
* 歴

Perl

言語|

* Perl
* Raku

人物|

* ラリー・ウォール
* 唐鳳

実装|

| Perl|

* perl
* ActivePerl

|

Raku|

* Rakudo
* Parrot
* MoarVM
* Pugs

フレームワーク|

* Catalyst
* Mojolicious
* Moose（英語版）

その他|

* CPAN
* TMTOWTDI（英語版）
* mod perl（英語版）
* Plagger
* Perl Mongers

* カテゴリ
* コモンズ
* ウィキブックス
* Portal:コンピュータ

* 表
* 話
* 編
* 歴

コンピュータ・プログラミング言語

低水準言語|

* 機械語
* アセンブリ言語

高水準言語|

| 1950年代|

* FORTRAN
* ALGOL
* RPG
* COBOL

|

1960年代|

* LISP
* CPL
* BASIC
* PL/I
* APL
* BCPL
* Simula
* LOGO
* B

1970年代|

* Forth
* Pascal
* C
* Prolog
* Smalltalk
* Scheme
* ML
* AWK
* Ada
* Modula-2

1980年代|

* C++
* Objective-C
* Common Lisp
* Eiffel
* Erlang
* Esterel
* Lustre
* Perl
* Mathematica
* J

1990年代|

* Python
* Tcl
* Haskell
* Visual Basic
* Ruby
* Lua
* Delphi
* Java
* ECMAScript (JavaScript)
* PHP
* OCaml
* SuperCollider
* R

2000年代|

* C#
* VB.NET
* Scala
* Clojure
* D
* F#
* Go
* Nim

2010年代|

* Dart
* Ceylon
* Elixir
* Crystal
* Hack
* Swift
* Rust
* Raku
* Elm
* Julia
* Kotlin
* Zig

架空の言語|

* 擬似言語
* CASL
* CAP-X

* 年表
* パラダイム
* 一覧

* 表
* 話
* 編
* 歴

FOSS

全般|

* オープンソースソフトウェア
* 自由ソフトウェア
* 定義
* オープンソース
* 定義

解説|

* 歴史
* ビジネスモデル
* セキュリティ

開発|

| OS（英語版）|

* BSD
* Darwin
* FreeDOS
* GNU Hurd
* Linux
* ディストリビューション
* OpenSolaris
* Symbian
* ReactOS

|

ソフトウェア|

* FreeBASIC
* Tcl/Tk
* Perl
* Python
* PHP
* Ruby
* Lua
* OpenJDK
* Go
* Swift
* Rust
* GCC
* clang
* LLVM
* Apache HTTP Server
* Firefox
* Chromium
* WebKit
* Android
* VS Code
* Mattermost
* NetBeans
* Eclipse
* IntelliJ
* Gambas

ホスティング|

* SourceForge
* OSDN
* GitHub
* GitLab
* Bitbucket
* Google Developers
* GNU Savannah

団体|

| 標準化団体|

* フリーソフトウェア財団
* ヨーロッパ
* インド
* ラテンアメリカ
* オープンソース・イニシアティブ
* freedesktop.org
* Linux Foundation
* Open Handset Alliance

|

開発支援団体|

* GNUプロジェクト
* Apacheソフトウェア財団
* Android Open Source Project
* Blender Foundation
* Eclipse Foundation
* GNOME Foundation
* KDE e.V.
* The Document Foundation
* VideoLAN
* X.Org Foundation
* Xiph.Org Foundation
* XMPP Standards Foundation
* Software Freedom Conservancy
* Software in the Public Interest
* Google Developers
* Mozilla Foundation
* Symbian Foundation

ライセンス|

| 指針|

* 自由ソフトウェアライセンス
* オープンソースライセンス
* Debianフリーソフトウェアガイドライン
* Microsoft Open Specification Promise

|

主要例|

* Apache
* BSD
* GPL
* LGPL
* MIT
* MPL
* CDDL
* EPL

その他|

* パブリックドメイン
* CC0
* WTFPL
* コピーレフト

課題|

| 特性上の課題|

* ライセンスの氾濫
* ウイルス性ライセンス

|

対立と論争|

* GNU/Linux名称論争
* Mozilla関連ソフトウェアのブランド変更
* TiVo化
* SCO・Linux論争

その他|

* FOSS
* 代替用語
* フォーキング
* 自由ソフトウェア運動
* The Cathedral and the Bazaar
* Revolution OS
* オープンソースソフトウェアとクローズドソースソフトウェアの比較

一覧|

* オープンソースソフトウェアのカテゴリ
* OSSホスティングサービスのカテゴリ
* オープンソースライセンスのカテゴリ

* コモンズ
* ポータル
* プロジェクト

典拠管理データベース: 国立図書館 |

* スペイン
* フランス
* BnF data
* ドイツ
* イスラエル
* アメリカ
* チェコ

|

*[チェコ]: Perl (programovací jazyk)