当前位置:

首页 > 编程开发 > 什么是Perl?编程语言Perl详细介绍

什么是Perl?编程语言Perl详细介绍

Perl由拉里·沃尔于1987年发布,融合C、awk等多语言特性,最初用于Unix报告处理。其解释器开源免费,可移植性强,追求简洁实用。Perl支持标量、数组、哈希等语法,拥有丰富模块库CPAN,广泛应用于系统管理、Web开发等领域。

Perl 最初的设计者拉里·沃尔(Larry Wall)在 1987 年 12 月 18 日发布了这门语言——一个从 C、sed、awk、shell scripting 以及许多其他语言特性中借力的“混血儿”。当时拉里还是 Unisys 公司的程序员,他在新闻组 comp.sources.misc 上放出了 Perl 1.0 版本,初衷很简单:做一个能简化报告处理的通用 Unix 脚本语言。

什么是Perl?编程语言Perl详细介绍

随后 Perl 的进化速度相当快:1988 年 Perl 2 带来了更好的正则表达式引擎,1989 年和 1991 年分别有了 Perl 3 和 Perl 4。但真正奠定地位的还是 1994 年发布的 Perl 5——直到今天它仍在活跃开发中。2000 年启动的 Perl 6 则是一次从头开始的重新设计,开发团队决定先制定语言规格再动手。至于发布日嘛,大家只说“圣诞节”,至于哪一年的圣诞节……没人说得准。Perl 5 的版本迭代也很有意思:5.6 于 2000 年发布,5.8 的持续开发贯穿 2002-2008 年,5.10 在 2007 年,5.12 在 2010 年,之后开始采用每月发布一个开发版、每年发布一个稳定版的节奏,5.14 和 5.16 分别在 2011、2012 年登场。

说到名字,Perl 通常被称作“实用报表提取语言”(Practical Extraction and Report Language),尽管也有人戏称它为“病态折中垃圾列表器”(Pathologically Eclectic Rubbish Lister)。其实 Perl 并不是缩写,只是拉里先提出第一个解释,后来又扩展了第二个——所以 Perl 没必要全部大写。你还会看到小写的“perl”,通常指程序运行的解释器;而首字母大写的“Perl”则指语言本身。官方站点是 www.perl.org。

Perl 的特点

Perl 的解释器是开源免费软件,不用担心费用问题,而且它几乎能在所有主流操作系统上运行,迁移起来非常方便。

从一开始,Perl 的设计哲学就是“能完成任务的语言”——把简单工作变得简单,同时不失去处理复杂问题的能力。数字、文本、文件、目录、网络、进程……它都能轻松摆弄。更重要的是,Perl 能方便地运行外部程序并捕获输出,再把这些数据传递给其他工具做进一步加工。而且,它天生就是可移植的——在任何现代操作系统上几乎都能直接编译运行。

Perl 基本语法

标量定义以 $ 开头:$num = 1;
数组定义以 @ 开头:@array = (1,2,3);
数组元素用 @array[index] 调用,下标从 0 开始,比如 @array[0] 的值是 1。
散列(哈希)定义以 % 开头:%hash = ("a",1,"b",2);
通过键名取值:%hash{"b"} 的值是 1。

Perl 的哲学

Perl 追求的是简洁——解决一个常见问题往往只需要几行代码。稍微复杂一点的场景也不会超过一屏。事实上,大多数人用 Perl 写的程序都不到 100 行。

最初 Perl 是作为 Unix 的“胶水语言”设计的,但它早已移植到几乎所有操作系统上。从这个角度看,Perl 可能是当今最具移植性的编程环境。写可移植的 C/C++ 需要一大堆 #ifdef,写可移植的 Ja va 要摸透每种实现的脾性,写可移植的 shell 就得记住每条命令在各系统上的语法——而 Perl 统统避开了这些坑,同时保留了其他语言里的好东西,还加了不少自己的特色。

Perl 的基因来自多个方向:工具集的智慧、社区的创造力,以及开源运动的土壤。但它从不把这些多样性视为弱点——Perl 是“背黑锅我来”的语言。如果你觉得自己被各种框架捆得喘不过气,渴望自由,那就用 Perl 吧。

Perl 是跨文化的。早期 Unix 系统程序员带着自己的习惯迁移到新平台时,发现 Perl 就像一座可移植的 Unix 文化蒸馏器——在“此路不通”的沙漠里找到的绿洲。反过来也一样:在 Windows 上工作的 Web 设计师会惊喜地发现,自己的 Perl 脚本不加修改就能在 Unix 服务器上跑。

尽管 Perl 在系统程序员和 Web 开发者中尤为流行,但这只是因为他们是第一批发现它的人。Perl 早已从最初的文本处理语言,长成了一套完整的通用编程环境:调试器、优化器、交叉引用、编译器、库、语法提示编辑器……应有尽有。当然,这些也是很多其他语言能做到的。但 Perl 之所以是 Perl,在于它从来不因为“保持简单”而丢掉应对复杂问题的能力。

因为既强大又好用,Perl 被用在了几乎你能想到的所有领域:从宇航工程到分子生物学,从数学到语言学,从图形处理到文档处理,从数据库操作到网络管理。很多人拿它来处理那些难以分析或转换的大批量数据——无论是 DNA 序列、网页还是猪肚皮的期货价格都不在话下。Perl 社区里有个笑话说,下次股市崩盘很可能是因为某个家伙写的脚本里有个臭虫。不过乐观地想,任何失业的股票分析师还能靠 Perl 找到新工作嘛。

Perl 的成功原因很多。早在“开源”这个词出现之前,Perl 就已经是一个成功的开源项目了。它是自由的,并将永远自由下去——你可以在任何场合使用它,只需遵守一个非常宽松的版权声明。商业项目完全可以直接拿来用,嵌入到你的软件中也不收任何费用。如果社区解决不了你的问题,你还有最后的手段:源代码本身。Perl 社区不会在“升级”的伪装下租给你商业秘密,也不会“停业”,更不会让你孤立无援。

自由固然重要,但单靠这一条不足以解释 Perl 现象。Perl 不仅自由,而且好玩。人们在 Perl 里能找到创造力——你可以根据实际需要选择为计算机速度优化,还是为程序员的速度优化;选择冗长还是简洁;选择可读性、可维护性、复用性、移植性……甚至如果去参加模糊 Perl 比赛,你还可以专门为模糊性做优化。这些自由的背后,是 Perl 那“分裂的人格”——它同时是简单和富有的语言。它从别处拿来好主意,然后装进易用的框架里。对喜欢它的人来说,Perl 是实用报表提取语言;对热爱它的人来说,它是变态电子垃圾制造者;在少数人眼里它只是毫无意义的重复练习……但世界需要一点点冗余,精简主义者想把事物分隔开,而 Perl 偏偏喜欢把它们合并到一起。

Perl 之所以简单,原因很多。你不需要知道什么特殊指令就能编译——把它当批处理或 shell 脚本执行就行。类型和结构容易上手。数据几乎没有限制:字符串和数组可以要多长就多长,而且会自动增长。Perl 不强迫你学新语法——它从你熟悉的 C、awk、BASIC、Python、英语甚至希腊语里借来语法。实际上,任何程序员都能从一段写好的 Perl 代码中读懂它在做什么。

最重要的是,你不用学完所有 Perl 知识就能开始写有用的程序。你可以写很小的脚本,也可以像小孩子一样写——我们保证不笑你。或者说,我们绝不会嘲笑小孩做事的创造性。Perl 从自然语言中借来的一个核心观点就是:只要能把自己的意思表述清楚,那用语言的一个子集就够了。Perl 文化接纳所有熟练程度的成员,不会有人在背后当语言警察。只要你的老板不炒你,脚本也能完成工作,那它就是“正确”的。

但 Perl 又是一种特性极其丰富的语言——如果你想用那些特性,当然得花点学费。虽然要把所有 Perl 能做的事都吸收需要时间,但等真正需要时,你会非常开心地发现它已经准备好了。

因为继承性,Perl 从数据整理时代就累积了大量特性。它最初设计成能浏览文件、扫描大量文本、生成动态数据并打印出良好格式化的报表。后来它开始风行,于是逐渐支持文件系统操作、进程管理、数据库管理、C/S 编程、安全编程、Web 信息管理,甚至面向对象和函数式编程。关键是这些新功能都能和旧特性无缝协作——别忘了它从一开始就是胶水语言。

而且 Perl 不止能黏合自己的特性。它通过模块机制可以快速设计、编写、调试和部署应用,并随时扩展。你可以在其他语言里嵌入 Perl,也可以在 Perl 里嵌入其他语言。通过模块导入,外部扩展用起来就像内置特性一样自然——面向对象的外部库在 Perl 里依然保持对象特征。

Perl 在开发效率上也很有想法。它会先把你的程序快速编译成内部格式,进行优化并反馈错误。一旦编译器前端满意,就把中间代码交给解释器(也可以交给能生成 C 或字节码的后端)。听起来复杂,但编译-运行-修改几乎以秒计。这种快速周转非常适合原型设计,随着程序成熟,你可以逐步收紧约束,增加纪律——Perl 同样能帮你做到。

安全性方面,Perl 除了提供典型的安全接口,还通过数据追踪机制预防意外的安全错误,并在灾难发生前发出预警。你甚至可以让 Perl 设置一个防护隔段,安全运行来源不可信的代码。

不过说实话,Perl 给的大部分帮助其实和语言本身关系不大,而是和使用 Perl 的人有关。Perl 社区可以说是地球上最热心的一群人了。如果这运动里有那么点宗教色彩,那这就是它的核心。拉里希望 Perl 社区像一小片天堂那样运转——目前看基本实现了。我们也请你一起努力。

Perl 之所以强大,CPAN 功不可没。上面有无数的开源模块,从科学计算到桌面应用再到网络,几乎没有找不到的。如果你想用 Perl 实现某个功能,不用自己重新发明轮子——去 CPAN 搜一搜,多半已有现成的。“Comprehensive Perl Archive Network”是查找一切 Perl 相关资源的中心仓库,包含了整个社区的智慧:成百上千的模块和脚本,相当于好几本书的文档,以及整个 Perl 发布。只要是用 Perl 写的有用且自由的东西,大概率就在 CPAN 上。CPAN 在全球都有镜象,可以从 http://www.perl.com/CPAN 的路牌找到最近的站,或者直接访问 www.cpan.org。

Perl 文化

1. 时势造英雄

要理解 Perl 为什么是今天这个样子,得先看看它怎么来的。翻开布满灰尘的历史书吧。

回到 1986 年,拉里当时是系统程序员,负责一个多层安全的广域网项目。西海岸有三台 VAX 和三台 Sun 机器,通过加密的 1200 波特串行线与东海岸类似配置相连。拉里的主要工作是系统支持(不是项目程序员),这让他有机会发挥三大优点:懒惰、不耐心和狂傲,从而开发和改进各种工具——比如 rn、patch 和 warp。也是在这时,拉里被划入了“计算机动物”范畴,因为他有无法遏止的“再加一个特性”的渴望。毕竟,如果生活已经那么复杂,程序难道不该复杂点吗?尤其是像 rn 这样的程序,简直应该视作高级人工智能项目——那样它就能替你看新闻了。当然,有些人已经在说 patch 太复杂了。

一天,拉里刚把 rn 撕成碎片,一片片散落在目录里,大管理员跑进来说:“拉里,我们需要一个管理配置系统,控制所有六台 VAX 和六台 Sun。一个月内搞定,你来吧。”从不逃避工作的拉里开始寻思,怎么做一套两岸的配置管理系统?得不用从头写,还要能查阅两边的报告、做核准和控制。答案只有一个:B-news(Usenet 传输软件的第二种实现)。

拉里在这些机器上装了新闻软件,增加两条控制命令:“append”用于追加内容,“synchronize”用于保持两岸文章数一致。配置管理用 RCS 做,核准和控制用新闻和 rn 搞定。一切顺利。

接着大管理员让他生成报告。新闻系统里有一大堆文件间的交叉引用。拉里第一反应是用 awk——但当时的 awk 无法根据文件内的信息打开和关闭多个文件。他不想写一个专用工具,结果就诞生了一门新语言。最开始不叫 Perl,拉里和同事、亲友讨论了一大堆名字,几乎翻遍了字典里所有三个或四个字母的单词。最早的名字是“Gloria”(取自他宝贝和妻子),但很快发现这会在家庭里造成混乱。

接着名字变成“Pearl”,最后成了现在的“Perl”——部分原因是拉里看到另一种叫 PEARL 的语言的介绍,更主要原因是懒得敲五个键。这样 Perl 就可以当做一个四字母词来玩。当然,这也留下了“Practical Extraction And Report Language”的缩写痕迹。

最早的 Perl 没多少特性:有模式匹配、文件句柄、标量、格式化,但函数很少,没有关联数组,正则表达式也只有一个简陋版本(从 rn 借来)。手册页只有 15 页。但它比 sed 和 awk 快,开始在项目里被其他用途采用。

后来拉里被调到研发支持部门,他带着 Perl 过去,很快发现它在系统管理里很好用。他借来 Henry Spencer 漂亮的正则表达式包,加入更多特性。然后他增加了大部分自己想要以及别人想要的功能,最终把 Perl 发布到了网络上。更让人吃惊的是,后来他先后在喷气推进实验室、NetLabs、Seagate 工作,都不耽误继续发布新版本。现在大部分工作由其他人完成,拉里则在 O'Reilly & Associates 假装写书。剩下的就是历史了。

时间线:Perl 1.0 于 1987 年 12 月 18 日发布(有些人仍严肃地过 Perl 生日);1988 年 6 月 Perl 2.0,Randal Schwartz 开始了“另一个 Perl 黑客”签名的传奇;1989 年 Tom Christiansen 在巴尔的摩 Usenix 做了第一个公开 Perl 教程;1989 年 10 月 Perl 3.0 首次以 GPL 发布;1990 年 3 月拉里写了第一首 Perl 小诗,随后和 Randal 合著了《粉色骆驼》第一版,1991 年早期发行;紧接着 Perl 4.0 发布,除了 GPL 还加入了 Artistic License;1994 年 10 月万众期待的 Perl 5 发布,完全重写,包含对象和模块,连《经济学人》杂志都报道了;1995 年 CPAN 正式引入;1996 年 Jon Orwant 创办《The Perl Journal》;《蓝色骆驼》第二版在同年年底出版;1997 年首届 O'Reilly Perl 大会在圣何塞举办。之后重大事件几乎每天都在发生,更详细的历史可以查阅 CPAST(history.perl.org)上的 Perl 纪年表。

2. Perl 诗歌

下面这首诗歌的仿制品是 1990 年愚人节张贴在 Usenet 上的。不加注释地放在这里,只是为了展示典型的编程语言隐喻能让人多倒胃口——有文学价值的东西大概都这样吧。拉里最初为 Perl 3 写的那些“Black Perl”到了 Perl 5 已经不能解析通过了,他倒是轻松了不少。

不过,拉里自己的文集很快被 Perl 诗歌女王 Sharon Hopkins 的光芒盖过。她写了大量 Perl 诗歌,并在 1992 年 Usenix 冬季技术大会上发表了题为“Camels and Needles: Computer Poetry Meets the Perl Programming Language”的文章(CPAN 可查)。除了是多产的诗人,Sharon 也是下面这首流传最广的诗歌的作者——它曾被《经济学人》和《卫报》刊登:

#!/usr/bin/perl
APPEAL:
listen (please, please);
open yourself, wide;
join (you, me),
connect (us,together),
tell me.
do something if distressed;
@dawn, dance;
@evening, sing;
read (books,$poems,stories) until peaceful;
study if able;
write me if-you-please;
sort your feelings, reset goals, seek (friends, family, anyone);
do*not*die (like this)
if sin abounds;
keys (hidden), open (locks, doors), tell secrets;
do not, I-beg-you, close them, yet.
accept (yourself, changes),
bind (grief, despair);
require truth, goodness if-you-will, each moment;
select (always), length(of-days)
# listen (a perl poem)
# Sharon Hopkins
# rev. June 19, 1995

另外,下面这段来自 comp.lang.perl 的讨论贴(发表于 1990 年 4 月 1 日)展示了“Black Perl”的例子,以及拉里自己的俳句。尽管其中有些内容看起来像胡闹,但它们确实能通过 Perl 解析——当然,通常不会做任何有用的事。

BEFOREHAND: close door, each window & exit; wait until time.
open spellbook, study, read (scan, select, tell us);
write it, print the hex while each watches,
reverse its length, write again;
kill spiders, pop them, chop, split, kill them.
unlink arms, shift, wait & listen (listening, wait),
sort the flock (then, warn the "goats" & kill the "sheep");
kill them, dump qualms, shift moralities,
values aside, each one;
die sheep! die to reverse the system
you accept (reject, respect);
next step,
kill the next sacrifice, each sacrifice,
wait, redo ritual until "all the spirits are pleased";
do it ("as they say").
do it(*everyone***must***participate***in***forbidden**s*e*x*).
return last victim; package body;
exit crypt (time, times & "half a time") & close it,
select (quickly) & warn your next victim;
AFTERWORDS: tell nobody.
wait, wait until time;
wait until next year, next decade;
sleep, sleep, die yourself,
die at last

拉里自己写的一首俳句:

print STDOUT q
Just another Perl hacker,
unless $spring

Perl 5.8.0 发布

古老的 Perl 从未停止创新。2002 年 7 月 18 日,Perl 5.8.0 正式发布,带来许多重大改进:

  • 更好的 Unicode 支持:自从 5.6 版以来大幅更新——支持 Unicode 3.2.0(5.6.1 只支持 3.0.1),语言和内部层次提供更平滑的 Unicode 环境,正则表达式也能配合 Unicode,新增 Encode 模块支持现存编码(包括中/日/韩)。
  • 多线程执行模式:新的“解释器多线程法”(ithreads)成为推荐方案,取代旧版的 5.005 多线程模式。两者的核心区别是 ithreads 下需要明确声明要共享的数据。
  • 新的输入/输出模式:PerlIO 提供了源码级的跨平台 stdio 实现和更丰富的 I/O 控制架构。
  • 更精确的数值:之前依赖系统自带的字符串/数值转换函数,容易造成跨平台误差;现在内部处理更精准。
  • 64 位支持:已经成熟,如果系统支持 64 位整数或地址空间,编译时可指定启用。
  • 安全的信号处理:以前接收信号可能破坏解释器内部状态,现在修复了。
  • 大量新模块:包括 Digest::MD5、File::Temp、Filter::Simple、libnet、List::Util、Memoize、MIME::Base64、Scalar::Util、Storable、Switch、Test::More、Test::Simple、Text::Balanced、Tie::File 等。
  • 彻底的兼容性测试:测试套件是 5.6 版的 6 倍,每日在各种平台上进行安装测试。

兼容性变化:

  • 二进制文件不兼容:主要因为 PerlIO 引入,5.8 与之前版本没有二进制兼容,需要重新编译 XS 扩展模块。
  • AIX 动态载入:为与其他程序更兼容,启用了系统原生动态载入,而非模拟方式。
  • 64 位平台上停用 Perl 自带的 malloc:因为自带的 malloc 在 64 位地址空间上问题较多,现在默认使用系统原生的 malloc。
  • 散列顺序再次改变:内部散列函数换成更优版本,只要不依赖特定顺序就无影响。
  • my 的属性改在运行阶段处理,而非编译阶段。
  • REF(...) 取代 SCALAR(...):对引用的引用在字符串化时改为 REF(...)。
  • Unicode 处理模式更新:数据是否视为 Unicode 不再依赖 use utf8 编译指令的作用域,而是直接与数据本身绑定。现在只有代码中用到 UTF-8 字面值时,才需要 use utf8,兼容旧版脚本。
  • VMS 平台:Socket 扩展改为动态加载;Alpha 版本默认使用 IEEE 浮点数。

用词改变:《骆驼书》第三版里的“IO discipline”(IO 规则),现在改称“IO layer”(IO 层)。

不建议使用的特性:

  • dump 指令视同作废。
  • 5.005 多线程模式已不建议,请用 ithreads。
  • 虚拟散列(Pseudohash):用户层语法将被移除,内部实现也会更改,因为它拖慢了一般散列的存取。
  • exec(串列) 和 system(串列) 参数中的受污染数据会触发警告,未来版本会变成致命错误。
  • tr///C 和 tr///U 是个意外,请改用 pack("C0", ...) 和 pack("U0", ...)。

已知问题:

  • AmigaOS 无法安装 5.8.0。
  • 比特码编译和原生码编译仍有问题。
  • 左值函数仍视作实验性质。
  • local() 与 tie() 的交互未明确定义。
  • 绑定的阵列和散列不会自动生成(autovivify)。
  • 自我绑定的阵列和散列目前禁用。

再次提醒,查看详细说明请读 pod/perldelta.pod、INSTALL 以及平台相关的 README 文件。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
作者最新文章
编程开发
相关文章 更多
PHP 的历史
PHP 的历史

PHP源于1995年RasmusLerdorf为追踪主页访问信息编写的脚本,后经重写形成PHP/FI。1997年PHP/FI2.0发布,用户数达数千。1998年PHP3.0引入可扩展性及面向对象支持,安装量占全球10%服务器。2000年PHP4.0搭载Zend引擎提升性能,支持HTTPSession等。2004年PHP5.0采用第二代Zend引擎,引入全新对

Perl进行错误处理和创建子程序的示例
Perl进行错误处理和创建子程序的示例

Perl子程序通过sub关键字定义,参数存于@_数组,支持签名特性增强可读性。错误处理包括die抛出异常、warn发出警告、eval块捕获异常并检查$@,系统错误由$!提供描述。条件判断if/unless及Carp模块可精准报告错误位置。

perl 交叉编译详解
perl 交叉编译详解

Perl是一种高级通用解释型动态语言,支持面向过程和面向对象编程,具有强悍字符串处理能力和丰富CPAN模块。交叉编译流程包括下载perl源码及perl-cross补丁,解压整合,指定交叉编译器,然后配置、编译并安装到目标平台。

perl之print,printf,sprintf使用案例详解
perl之print,printf,sprintf使用案例详解

Perl中print直接输出列表或文件,printf支持格式化输出,sprintf仅返回格式化字符串而不输出。三种函数均可指定文件句柄,省略时默认使用标准输出。sprintf可通过参数索引调整输出顺序,常用于变量赋值和字符串的拼接。

使用脚本实现自动清除指定文件夹下丢失链接文件的符号链接
使用脚本实现自动清除指定文件夹下丢失链接文件的符号链接

脚本遍历指定目录,用-h检测符号链接、-e判断目标文件是否存在,筛选失效链接并输出路径,结合xargsrm可批量清理,省去手动查找删除的麻烦。

Perl6中的垃圾收集
Perl6中的垃圾收集

Perl6采用可达性分析与垃圾收集替代Perl5的引用计数,解决了循环引用和多线程同步难题,但牺牲了及时销毁特性。它通过相位器管理外部资源,如END和LEAVE,确保程序退出或作用域结束时释放数据库句柄等有限资源,避免了引用计数固有的缺陷。

强大的Perl正则表达式实例详解
强大的Perl正则表达式实例详解

Perl正则表达式以核心元字符为基础,通过组合实现复杂匹配。实例涵盖IP地址、邮箱、数字、温度、空白行、版本号等常见模式。元字符如^、$、*、+、?、.、()、[]、\d、\s等详细说明,并给出匹配中文、URL、账号、电话、邮政编码等实用表达式。

Perl学习教程之单行命令详解
Perl学习教程之单行命令详解

Perl单行命令是命令行文本处理的利器,利用核心参数如-a、-F、-l、-n、-e、-p可快速完成替换、统计、模块调用等任务。正则能力与极简语法使一行命令替代多行脚本,尤其适合临时文本处理场景,掌握这些参数能大幅提升效率。

Perl字符串比较和整数比较的区别详解
Perl字符串比较和整数比较的区别详解

Perl中字符串比较使用字母操作符如eq、lt等按字典顺序,整数比较则用符号操作符如==、!=、等,二者不可混用。

使用Perl生成随机密码
使用Perl生成随机密码

使用Perl编写脚本,通过命令行参数控制密码的字符种类(大小写字母、数字、特殊符号)和长度,确保每种指定类型至少出现一次,并支持唯一字符模式避免重复,默认密码长度为9。

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

PDF教程
PDF教程

正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

Mac软件 更多
Postman macOS版
Postman macOS版
Mac

Postman是一套面向API全生命周期的开发与测试平台,可在Mac上发送和调试多种协议请求,管理集合、环境及认证信息,并完成脚本测试、模拟服务、监控、文档发布和团队协作。它适合开发、测试及运维人员使用,提供个人免费方案。

Docker Desktop macOS版
Docker Desktop macOS版
Mac

Docker Desktop 是 Docker 官方为 Mac 提供的容器开发环境,集成 Docker Engine、命令行工具、Compose、Build、Kubernetes 与图形化管理界面。

Android Studio macOS版
Android Studio macOS版
Mac

Android Studio 是 Google 面向安卓应用开发提供的官方集成开发环境,基于 IntelliJ IDEA 构建。它整合智能代码编辑、Gradle 构建、界面预览、设备模拟、性能分析、调试测试及 APK 分析等工具。

WINDOWS 更多
PixPix 网页版
PixPix 网页版
Windows

PixPix 是面向品牌、卖家和内容团队的在线 AI 图片视频创作平台,提供图视频 Agent、无限画布、图片生成、视频生成、自然语言编辑及商品套图、产品精修和带货视频等电商工具。

Postman Windows版
Postman Windows版
Windows

Postman 是面向 API 全生命周期的开发与协作平台。Windows 桌面版可用于构建和发送 HTTP、GraphQL、gRPC、WebSocket、MQTT 等请求,并提供环境变量、集合、脚本测试、模拟服务、监控、文档及团队工作区等

Docker Desktop Windows版
Docker Desktop Windows版
Windows

Docker Desktop 为 Windows 开发者提供集成式容器环境,内置 Docker Engine、命令行工具、Compose、Build 与 Kubernetes 等组件,可在本机完成镜像构建、容器运行、日志查看和资源管理。