面向非 Web 程序员的 Web 编程(Perl)

2024-03-06

我希望开始使用 Perl 进行 Web 编程(Perl 是我唯一知道的语言)。问题是,除了上网之外,我对任何与网络有关的事情一无所知。我不知道从哪里开始。

所以我的问题是......

我从哪里开始学习网络编程?我应该知道什么?我应该用什么?


需要理解的关键事项是:

您可以发送到浏览器的内容

…或者更确切地说,您打算发送到浏览器的内容,但了解其他内容是有用的(因为,特别是在复杂的 Web 应用程序中,您需要选择适当的数据格式)。

e.g.

  • HTML
  • CSS
  • JavaScript
  • Images
  • JSON
  • XML
  • PDFs

当您动态生成数据时,您还应该了解可用的工具(例如,Perl 社区对TT http://template-toolkit.org/用于生成 HTML,但还有其他选项,例如Mason http://www.masonhq.com/, while JSON::任意 https://metacpan.org/module/JSON::Any往往是我首选的 JSON)。

运输机制

  • HTTP(包括使用什么状态代码以及何时使用、如何进行重定向、使用什么方法(POST、GET、PUT 等)以及何时使用)。
  • HTTPS(带 SSL 加密的 HTTP)

如何让网络服务器与你的 Perl 对话

  • PSGI/普拉克 http://plackperl.org/如果你想要现代而高效
  • CGI http://en.wikipedia.org/wiki/Common_Gateway_Interface对于非常简单的
  • mod_perl http://perl.apache.org/如果您想要疯狂的功能(我见过有人使用它将 Apache HTTPD 变成 SMTP 垃圾邮件过滤器)。

Security

如何防范恶意输入 https://www.owasp.org/index.php/Main_Page(这基本上归结为了解如何获取一种格式的数据(例如提交的表单数据)并将其转换为另一种格式(例如 HTML 或 SQL)。

网络框架

您可以将大量工作推给框架,框架提供了组织 Web 应用程序的结构化方法。

  • 网络::简单 https://metacpan.org/module/Web::Simple很简单
  • Dancer http://perldancer.org/似乎持有中间立场(尽管我必须承认我还没有机会使用它)
  • Catalyst http://www.catalystframework.org/可能具有最陡峭的学习曲线,但具有大量的功能和插件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

面向非 Web 程序员的 Web 编程(Perl) 的相关文章

  • 为什么 getElementsByTagName 会出现“无效谓词”错误?

    我有以下 XML
  • 在哪里可以找到将现有 CPAN 模块转换为使用 Dist::Zilla 的简明指南?

    我曾多次阅读过相关文档和一些博客文章地区 齐拉 http search cpan org dist Dist Zilla 我从来没有对自己的理解充满信心 在回答另一个问题时 Ether 提出了转换的可能性地穴 SSLeay http sea
  • 如何匹配与 Perl 中的特定模式不匹配的字符串?

    我知道使用正则表达式很容易匹配除给定字符之外的任何内容 text ab ac ad text s c g Match anything except c text is now c 我不知道如何 排除 字符串而不是字符 我如何 匹配除 ac
  • Perl 拆分和正则表达式

    我有以下字符串 100 California Grown Olives Water Salt And Ferrous Gluconate An Iron Derivative asasd sadasda 我想把它分开 but only if
  • 在 Perl 中解析 RSS/Atom 的最佳库是什么? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我注意到XML RSS 解析器 http search cpan org dist XML RSS P
  • 修改排序比较器内的字符串

    我有以下代码 在排序比较器中 它在进行比较之前删除前缀字符串 print for sort a s STRING b s STRING foo a cmp foo b a 尽管比较和顺序是正确的 但前缀字符串已从输出中删除 以下保留前缀字符
  • 为什么这个特定 Perl 脚本的线程版本比非线程版本慢 200 倍?

    A 推介会 http migo sixbit org papers Perl Threads by 米哈埃尔 戈伊克曼 http migo sixbit org 2003 年 Perl 会议上的文档包含两个质数查找脚本的示例 One htt
  • 如何在 Perl 中发送此 SOAP XML?

    我必须发送下面的 XML 我有no idea从哪儿开始 我知道我需要在 Perl 中查找 SOAP 但大致就是这样
  • Perl 中的线程定时循环

    本质上 我希望有一个高优先级线程 它以给定的时间间隔 此处为 0 5 毫秒 运行并中断 一切 执行一个短任务 然后返回 睡眠 状态 使用 Ubuntu 11 04 和 perl v5 10 1 问题是 虽然我得到了某种结果 但我不确定是否有
  • 从具有不同活动 perl 版本的另一个 perl 脚本调用 perl 函数

    我们有两个版本的 Active perl 5 6 和 5 24 我们有必须在 Active perl 5 24 版本 采用 TLS 1 2 版本 上执行的 Web 服务 并且需要从 Active perl 5 6 版本调用 我们使用的是wi
  • 从 HoA 值中获取独特元素并打印

    我有一个 HoA 其中包含某些值 我只需要 HoA 中的独特元素 预期结果 Key 1 Element ABC DEF Key 2 Element XYZ RST Key 3 Element LMN 下面是我的脚本 usr bin perl
  • 零垫重命名,例如图片 (2).jpg -> 图片 (002).jpg

    我需要按照标题在所有子文件夹中解释的方式重命名所有图像 我正在考虑用正则表达式提取括号内的数字 然后重命名它 搜索周围我看到有类似的工具rename and mmv但我无法让他们重新命名 jpg 我将不胜感激任何解决我的问题的建议 顺便说一
  • 如何在 Perl 中运行匿名函数?

    sub print 1 sub print 1 我尝试了各种方法 都是错误的 sub 将为您提供指向该函数的指针 因此您必须通过引用调用 sub print Hello world n gt 另一种简单的方法 如所指出的布拉戈维斯特 布尤克
  • “get”在 Perl 中不起作用

    我是 Perl 新手 在过去的几天里 我制作了一些简单的脚本 通过 get 将网站的源代码保存到我的计算机上 他们做了他们应该做的事情 但不会获得论坛网站的内容 非论坛网站工作得很好 知道发生了什么事吗 这是问题块 my url http
  • 单台机器最快的 Perl IPC/消息队列是多少?

    我正在开发一个 主要 Perl 项目 并希望使用消息队列来相互隔离进程 我有这样的工作流程 输入 gt 接收器 gt 处理器 gt 输出 我需要每秒处理数百笔交易 所以速度是我最大的动力 对于这种类型的设置来说 最快的消息队列系统是什么 我
  • 由于握手问题,PerL SSL 连接尝试失败

    我希望有人可以提供帮助 我正在使用 nagios 插件 check ilo2 health 该插件在我们的 OpenSuSE 系统上运行良好 但新的 Ubuntu 14 04 系统有问题 删除 nagios 的东西并运行 perl 基本上是
  • 如何将 cpanminus 与本地 CPAN::Mini 一起使用?

    我已经创建了自己的 CPAN 本地副本minicpan http search cpan org rjbs CPAN Mini 1 111007 bin minicpan并设法重新配置 cpan 来使用它 太棒了 但是我将如何使用它cpan
  • 在 Objective-C 中使用 perl?

    CPAN 有大量非常有用的库 除了将它们移植到 Objective C 之外 是否还有在 iOS 上将 Perl 代码嵌入到 Objective C 中的方法 我对使用特别感兴趣电子表格 阅读 http kobesearch cpan or
  • 结束 perl 脚本而不等待系统调用返回

    我在 Linux Ubuntu 14 04 上运行一个简单的 apache Web 服务器 并使用 perl CGI 脚本处理一些请求 该脚本使用以下命令启动系统命令system函数 但我希望它立即返回 无论系统调用的结果如何 我一直在传递
  • 真实设备中的 Android strace

    我有以下情况 我想监控Android手机上的系统调用 所以 我编写了一个脚本来做到这一点 使用 Android 模拟器可以完美地工作 将应用程序的痕迹写入我的 Ubuntu 上的特定文件中 问题是当我连接一个真实的手机来分析它时 它在结果文

随机推荐

  • 何时在 Python 的 AST 中使用 ExtSlice 节点?

    绿树蛇 http greentreesnakes readthedocs org en latest index html gives 一个例子 http greentreesnakes readthedocs org en latest
  • OpenGL 和 WebGL 的 Alpha 渲染差异

    I m rendering the same scene using the same exact C code once to native OpenGL on windows and once using Emscripten to W
  • 用于 JSON 请求的 AlamoFire 异步完成处理程序

    使用 AlamoFire 框架后 我注意到completionHandler 在主线程上运行 我想知道下面的代码是否是在完成处理程序中创建核心数据导入任务的好习惯 Alamofire request GET http myWebSite e
  • 依赖的非类型模板参数和可变参数模板

    我正在尝试扩展提供的可能性std integer sequence http en cppreference com w cpp utility integer sequence一个名为的新类integer range 显然 这在两个边界之
  • 如何使用 RVM 重新编译 ruby​​?

    我使用 RVM 安装了 Ruby 1 9 3 并且运行良好 然后我在 ruby C 源文件中进行了一些更改 我想重新编译并重新安装它 以便可以使用这些更改 我还没有找到任何类型的rvm重新编译然而命令 使用时出现的问题rvm reinsta
  • 如何在 DataGridViewImageColumn 中添加图像?

    我有一块田地DataGridViewImageColumn 对于字段的每一行 根据条件 我添加不同的图像 有人知道我如何在 Windows 窗体中执行此操作吗 if dgvAndon Rows e RowIndex Cells urgenc
  • WordPress 在管理中提供本机日期选择器吗?

    我正在开发一个插件 并在管理中提供一个由用户填写日期的字段 我想知道 WP Admin I 中是否有可用的本机日期选择器 我通常会包含一个小的 jQuery datepicker 脚本来执行此操作 但如果一个已经可用 我会更喜欢它 因为明显
  • 为什么 paramiko 偶尔会引发异常?

    为了方便起见 我编写了一个小包装类来登录远程主机 执行命令 结束检索数据 def MySSHClient def connect self remoteHost remotePort userName password self s par
  • 将文本区域包裹在 HTML 元素周围

    有什么方法可以将 textarea HTML 元素包裹在 HTML 元素周围吗 就我而言 我想将文本区域包裹在标签周围 这就是我试图实现的目标 Label name 其中 是文本区域 你不能使用HTML里面有标签
  • 如何在画布上移动图像?

    我有一个简单的射击画布游戏 运行得很好 但我的问题是我想要图像进行拍摄而不是蓝色矩形 那么我怎样才能让我的图像移动并拍摄掉下来的橙色矩形呢 这是我的代码 function initCanvas var ctx document getEle
  • 从参数设置 Rmarkdown 中的文档标题

    我有一个运行良好的 Rmarkdown 模板 并且对其进行了参数化 这样我就可以从不同的数据源生成同一报告的变体 但是 我想更改每种情况下的报告标题 我怎么做 这是我迄今为止拥有的 YAML 标头 title My Title author
  • 使用bash脚本修改配置文件

    我正在编写一个 bash 脚本来修改包含一堆键 值对的配置文件 我如何读取密钥并找到值并可能修改它 在黑暗中疯狂地修改单个值 sed c i s TARGET KEY 1 REPLACEMENT VALUE CONFIG FILE 假设目标
  • 哪个服务可以转换 AngularJS 中的元素和属性名称?

    AngularJS 在 HTML 标记和 JS 之间转换元素和属性名称 用驼峰命名法替换破折号 即 myComponent gt my component 反之亦然 哪个 AngularJS 服务或函数可以做到这一点 谢谢 尼基塔 执行此操
  • XCode“此时无法安装此应用程序。”

    在构建我的目标之一时 我对 XCode 遇到了一些小烦恼 构建成功 但是一旦在模拟器中启动它 我就会收到此提示 This app could not be installed at this time 仅当应用程序事先安装在模拟器上时才会发
  • 在 PHP 中将 SELECT 查询的结果打印为预格式化文本?

    我正在寻找一种简单快捷的方法来将 PHP 中的 MySQL SELECT 查询结果打印为预格式化文本 我想要的是能够将查询对象传递给函数并获得记录集的打印输出 就像命令行 MySQL 客户端在运行 SELECT 语句时所做的那样 下面是我希
  • 同一页面上有多个 ClojureScript 文件

    我有一个使用 Jasmine 来测试 JavaScript 的项目 我正在尝试切换到使用 ClojureScript 作为前端 我的project clj is like defproject myproject 0 1 0 SNAPSHO
  • 在 SQL Server 和 VB.Net 之间保持一致的日期时间格式的最佳方法

    我正在开发一个 VB Net 应用程序 该应用程序的操作严重依赖于日期和时间 由于如果应用程序日期格式与服务器日期格式不匹配 则日期格式可能会发生冲突 因此解决此问题的最佳实践是什么 我知道 SQL Serverdatetime格式取决于服
  • 一种更快的方法来实现 intersect() 给我的目标?

    我发现一个lot我的 matlab 函数花费的时间在这段代码中 intersect freq bins our bins 两者都可以是相当大的向量 并且仅由整数组成 我只需要知道两者中都有哪些整数 这确实是 intersect 的原始目的
  • 使用 VideoView 进行流式传输或渐进式下载视频

    我对如何使用 VideoView 播放视频感到困惑 从本地文件播放视频 作为渐进式下载和流式传输 这个例子 http davanum wordpress com 2009 12 04 android E2 80 93 videomusic
  • 面向非 Web 程序员的 Web 编程(Perl)

    我希望开始使用 Perl 进行 Web 编程 Perl 是我唯一知道的语言 问题是 除了上网之外 我对任何与网络有关的事情一无所知 我不知道从哪里开始 所以我的问题是 我从哪里开始学习网络编程 我应该知道什么 我应该用什么 需要理解的关键事