Skip to Content
『Learning Perl, 8th Edition』
book

『Learning Perl, 8th Edition』

by Randal L. Schwartz, brian d foy, Tom Phoenix
March 2025
Beginner to intermediate
398 pages
5h 33m
Japanese
O'Reilly Media, Inc.
Content preview from 『Learning Perl, 8th Edition』

第2章. スカラーデータ

この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com

Perlのデータ型はシンプルだ。スカラーとは単一のもの、それだけだ。スカラーという言葉は物理学や数学、あるいは他の学問分野で使われる言葉かもしれないが、Perlの定義はスカラーそのものなのだ。とても重要なことなので、もう一度言っておこう。スカラーとは単一のものであり、Perlがスカラーだと考えているものを表現するのに他にいい方法がないから、thingという言葉を使っているのだ。

スカラーはPerlが扱うデータの中で最も単純なものだ。ほとんどのスカラーは数値(255とか3.25e20とか)か文字列(hello とかゲティスバーグ演説とか)だ。数値と文字列は全く異なるものと思われるかもしれないが、Perlではほぼ互換性を持って使われている。

他のプログラミング言語を使ったことがある人なら、いくつかの異なる種類の単一アイテムのアイデアに慣れているだろう。C言語にはchar やint などがある。Perlは単一のものを区別しないので、適応するのが難しいと感じる人もいるだろう。しかし、本書で説明するように、Perlはデータを扱う上でかなり柔軟性を与えてくれる。

この章では、値そのものであるスカラー・データと、、スカラー値をストアできるスカラー変数の両方を示す。この2つの区別は重要だ。値自体は固定されており、変更することはできない。しかし、変数に格納するものは変更できる(これが変数名の由来だ)。プログラマはこの点を少し杜撰にして、単に "スカラー "と言ってしまうことがある。重要な場合を除いて、我々も少し杜撰になる。これは第3章で、より重要になってくる。

数字

スカラーは数字か文字列のどちらかであることがほとんどだが、とりあえず数字と文字列を別々に見ておくと便利だ。まず数値を取り上げ、次に文字列を取り上げる。

すべての番号は内部的に同じ形式を持つ

Perlはその点、基礎となるCライブラリに依存しており、数値を格納するために倍精度浮動小数点数を使用している。Perlの精度と数値の大きさには制限があるが、これは言語自体の制限ではなく、Perlインタプリタのコンパイルやインストール方法に関係している。Perlは、ローカルのプラットフォームとライブラリの局所的最適化を使って計算を行うことで、可能な限り高速になるようにしている。

これから説明するように、整数(255や2,001のような整数)と浮動小数点数(3.14159や1.35×1,025のような小数点以下の実数)の両方を指定することができる。しかし、Perlは内部的には倍精度浮動小数点数で計算する。

つまり、Perl内部には整数値は存在せず、プログラム中の整数定数は等価性の浮動小数点値として扱われる。Perlでは、数値は単なる数値である。他の言語では、数値の大きさや種類を決めるように要求されることがあるが、それとは違う。

整数リテラル

リテラルとは、ソースコードの中で値を表現する方法である。リテラルは、計算結果やor演算子ではなく、プログラムに直接入力するデータである。整数リテラルは、次のように簡単である:

0
2001
-40
137
61298040283768

最後の数字は少し読み取りにくい。Perlでは整数リテラルの中にアンダースコアを追加してわかりやすくすることができるので、アンダースコアを埋め込んで読みやすくすることもできる:

61_298_040_283_768

カンマはこの目的のために使われるべきだと思ったかもしれないが、Perlではカンマはすでにもっと重要な目的で使われている(第3章で説明する)。それでも、誰もがカンマで数値を区切るわけではない。 ...

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

Learning Perl, 8th Edition

Learning Perl, 8th Edition

Randal L. Schwartz, brian d foy, Tom Phoenix
The AWK Programming Language, 2nd Edition

The AWK Programming Language, 2nd Edition

Alfred V. Aho, Brian W. Kernighan, Peter J. Weinberger

Publisher Resources

ISBN: 9798341636231