開発者の皆さん、こんにちは!
InterSystems フルスタックコンテストの受賞者が決定しました!
このコンテストには、16 件🔥のアプリケーション の応募がありました。ご参加いただきありがとうございました!
(3).jpg)
以下、受賞された方々です。
開発者の皆さん、こんにちは!
InterSystems フルスタックコンテストの受賞者が決定しました!
このコンテストには、16 件🔥のアプリケーション の応募がありました。ご参加いただきありがとうございました!
(3).jpg)
以下、受賞された方々です。
これは InterSystems FAQ サイトの記事です。
WebゲートウェイのSystem Status(システムステータス)ページでは、現在のすべてのアクティブな接続のステータスを確認することができます。
最初のステータステーブル (システムステータス) は、IRIS への接続に関する情報を表示します。
2番目のステータステーブル (InterSystems IRIS サーバ) は、InterSystems IRIS サーバに関する情報を表示します。
3 番目のステータステーブルは、アプリケーションパスの情報を表示します。
4 番目のテーブルは、Web ゲートウェイの応答キャッシュに保持されるフォームを表示します。
いくつかのサンプル接続ステータスを例にご説明します。
【ケース1】
接続最小数5の設定で、現在3接続が処理中の場合。
使用中のプロセスは InUse のステータス、待ち受けで空いているプロセスは Free で表示されます。
※Free の接続は、[非活動タイムアウト(無使用タイムアウト)] まで残り、タイムアウトを過ぎると自動的に終了します。
ただし、[サーバ接続最小数] 分の接続は上記タイムアウトが過ぎても残り、次のリクエストで使用されます。
アイドル時間/タイムアウトの表示例は、0/0(接続最小数で残り続ける接続) や、300/86400(タイムアウト86400秒中、300秒経過)になります。
※Server のステータスは、Webゲートウェイレジストリメソッドで使用のプロセスです。
CSP.iniで以下の設定をしている場合は、このプロセスは作成されません。
[SYSTEM]
REGISTRY_METHODS=Disabled
インターシステムズは InterSystems Caché®, InterSystems Ensemble®, HealthShare® Health Connect のメンテナンスリリース 2018.1.12 をリリースしました。
製品の品質改善のために、 アイディアポータル にある リリース後フィードバック のカテゴリにてご意見をぜひお聞かせください。
変更点の詳細と、アップグレードチェックリストは以下のリンクからご覧いただけます。(英語):
現在、多くの早期アクセスプログラムをご提供しています。こちらの ページ からご興味のあるプログラムにお申込みいただけます。
InterSystems Caché の通常インストーラパッケージ形式のキットは WRC Direct の Caché ダウンロードページ から、InterSystems Ensemble のキットは Ensemble ダウンロードページ から、HealthShare Health Connect のキットは HealthShare ダウンロードページ からそれぞれ入手してください。
開発者の皆さん、こんにちは!
私は普段 Windows を使用しており、VSCode で ObjectScript を書いてテストする際には、IRIS ターミナルを別途起動し、VSCode とターミナルの 2 画面を行き来する操作を続けてきました。
ところが今回、ObjectScript エクステンションに追加された「ObjectScript Lite Terminal」を利用することで、VSCode 1 画面内で IRIS ターミナルを操作できるようになりました。
一見すると小さな追加機能ですが、日々 IRIS を触っている開発者にとっては “地味に革命” と言えるかもしれません。本記事では、その使い勝手を詳しくご紹介します。
Windows 以外の環境では、通常 iris session xxx を実行して ObjectScript シェルに切り替えますが、Lite Terminal を使えばこの操作が不要になります。
まずは、起動方法から。
Lite ターミナルの起動には、3種類の方法があります。
VSCode の View > Command Palette.. > ObjectScript: Launch Lite Terminal
.png)
クリック後、
前回の記事、SQLでの変数やパターンを使ったLIKEの使用では、組み込みSQLから動的SQLまで、さまざまなシナリオでのLIKE述語の動作や、ワイルドカードや変数を使った場合のパフォーマンスへの影響について解説しました。 前回の記事では、動作するLIKEクエリを書くことに慣れることをテーマにしました。しかし、SQLを動かすことができるようになるのは、あくまで出発点に過ぎません。 信頼性が高く、スケーラブルで安全なアプリケーションを構築するには、LIKEを使ったクエリを含む、すべてのSQLに共通するベストプラクティスを理解する必要があります。
この記事では、次のステップに進みます。 SQLコードを強化し、ありがちな間違いを避け、SELECTステートメント文が正しく動作するだけでなく、効率的かつ安全に実行されるようにするためのいくつかの重要なポイントを見ていきます。 途中で、LIKE述語を使ったSELECTステートメントを例として取り上げ、これらの基本原則がどのようにクエリやその結果に直接影響するかを説明します。

*これは、Geminiがこの記事のために生成したものです。いい感じです。
開発者のみなさん、こんにちは!
開発者コミュニティでは、2026 年 2 月 21 日から 22 日にかけて定期メンテナンスが行われます。
.png)
これは InterSystems FAQ サイトの記事です。
こちらの記事では、ミラー環境をメンテナンスリリースバージョン(例:2025.1.0 -> 2025.1.1)にアップグレードする際の手順についてご説明します。
脆弱性の問題の対応などで、最新メンテナンスリリースバージョンへのアップグレードが必要な場合はこちらの方法をご使用ください。
こちらの手順は、「ミラー環境アップグレード中にアプリケーションの変更を伴わない」ことを前提とした手順になります。
※こちらのドキュメント にある以下のイメージの、「 Procedure 1: Maintenance Release Upgrades with No Application Changes」の手順です。
※ ミラーが使用できなくなるのは、計画的フェイルオーバーの実行時間のみです。
【注意1】
InterSystems IRIS for Health および Health Connect でミラーリングを構成する場合は、HSSYSを必ずミラーリングするようにしてください。また、アップグレードは2024.1以降のバージョンへ行うようにしてください。
【注意2】
ミラーリング構成のInterSystems IRISでは、ジャーナルファイルの互換性を保つため、バックアップメンバーを先に、プライマリを後にアップグレードする必要があります。
インターシステムズは、InterSystems IRIS® data platform、InterSystems IRIS® for HealthTM、HealthShare® Health Connect のメインテナンスバージョン 2025.1.3 をリリースしました。このリリースには、最近発行された以下の警告および勧告に対する修正が含まれております。
ドキュメント
変更点の詳細と、アップグレードチェックリストは以下のリンクからご覧いただけます。(すべて英語)
現在、多くの早期アクセスプログラムをご提供しております。 こちらの ページ ご興味のあるプログラムにお申込みいただけます。
年月を重ねるにつれて、InterSystems開発者コミュニティで特定のSQLの質問が何度も繰り返されることに気づくようになりました。特にさまざまなコンテキストでのLIKE述語の使用についてです。 よくあるバリエーションには、以下のようなものがあります。
また、さらに多くの派生パターンがあります。 そこで、InterSystems IRIS SQLでのLIKEの仕組みに焦点を当てた記事を書くことにしました。特に、埋め込みSQL、動的SQL、クラスクエリで変数を使用する方法について取り上げ、パターンのエスケープ、特殊文字検索についても解説しています。

まず最初に、InterSystems IRIS SQLでは、SQL標準の新しいバージョンを実装しているその他のリレーショナルDBMSで利用できるほとんどの機能を提供していることを述べておきたいと思います。 同時に、IRISではリレーショナルアクセスだけでなく、オブジェクトモデルやドキュメントモデルを使って同じデータにアクセスできることも重要なポイントです。
それでは、LIKE述語と、SQLでのパターンマッチングの使い方を詳しく見ていきましょう。
IRISは、DocDBを使用してJSONドキュメントを保存および取得できる専用機能を提供しており、事前定義されたスキーマを必要としません。
開発者は、複数のツールを切り替えたり、冗長なコードを書いたりせずに、ドキュメントを素早く簡単に閲覧、作成、編集できる方法を求めています。 そこで私は、DocDBと簡単にやり取りできるクリーンでレスポンシブなインターフェースを提供するCSPベースのオープンソースアプリケーション、iris-docdb-uiを開発しました。 ユーザーは、ネームスペースやドキュメントデータベースの作成、保存されたドキュメントの閲覧、新規ドキュメントの追加、既存ドキュメントの編集を、すべて1つの便利なプラットフォーム上で簡単に行えます。
このアプリケーションは、InterSystems Open Exchangeでも公開されているため、簡単にインストールして、すぐに使い始めることができます。
Iiris-docdb-ui - RIS DocDB Explorerの本質はそのシンプルさにあります。
コミュニティの皆様、こんにちは!
新年度を前に、InterSystems 製品を利用した開発・運用に携わる方向けのトレーニングコースを開催します。
2月26日開始の開発者向けコース、3月2日開始の管理者向けコースをご用意しており、日常業務の振り返りや知識の整理を行う機会としてご活用いただけます。
4月からの業務をよりスムーズに進めるための準備として、ぜひご検討ください。
※コースは全てオンラインでの開催です。
InterSystems 製品における SQL アクセスを利用した開発を想定し、実務に役立つ知識を体系的に学べるトレーニングコースです。
ツールの基本的な使い方から、ストアドプロシージャやサーバ側ロジックの実装、インデックス設計、パフォーマンスチューニングまで、日常業務を想定した実践的な内容を扱います。
開発者の皆さん、こんにちは!
次世代の ObjectScript 開発ツールを形づくるための取り組みに、皆さまのご参加をお待ちしています。IRIS開発者向けに特別に設計された、AIを活用したObjectScript コーディングアシスタントの開発に取り組んでいます。
ObjectScript 向けに適応された汎用的な AI ではなく、ObjectScript のイディオム、IRIS API、interoperability プロダクション、そして実際の開発者ワークフローを理解するためにゼロから構築されたソリューションです。
本当に役立つものを作るために、皆さまのご意見をぜひお聞かせください。
👉 ObjectScript Coder Agent 開発者アンケート(英語) 👈
.jpg)
InterSystems EHR コミュニティの皆様、こんにちは。
InterSystems Certification(インターシステムズ認定)部門は現在、CCR Tier 2 ユーザー向けの認定試験を開発中です。以下の受験者要件に該当する方は、ぜひベータテストにご参加ください!試験は 2026年1月27日 よりベータテストとして利用可能になります。
ベータテストは 2026年3月28日 に終了予定です。
ベータテスターの方には、2026年3月28日 までに試験を予約し、受験していただくようお願いいたします。試験はオンライン監視環境にて無料で実施されます(ベータテスター全員に対し、通常150ドルの受験料が免除されます)。
その後、InterSystems Certification チームがすべてのベータテストデータの慎重な統計分析を行い、試験の合格ラインを設定します。ベータテスト結果の分析には通常6~8週間かかります。合格ラインが確定次第、InterSystems Certification から結果を通知するメールが届きます。試験のスコアが合格ライン以上であれば、認定資格取得となります!
注: ベータテストのスコアは完全に機密扱いとなります。
参加にご興味がありますか?以下の試験詳細をご覧ください。
これは InterSystems FAQ サイトの記事です。
^SystemPerformance ユーティリティ (旧:^pButtons) を使用すると、 InterSystems製品が稼働するプラットフォームに関する詳細なパフォーマンス・データを収集することができます。
収集できるのは以下の情報になります。
・IRIS の設定:構成、ドライブの割り当てなど
・mgstat:IRISのパフォーマンスメトリック(グローバル参照や物理読み込み、など)
・オペレーティングシステムのリソースとパフォーマンスに関するメトリック
※Unixの場合は vmstatとiostat、Windowsの場合は パフォーマンスモニター
・その他の有用なメトリック
こちらの記事では、^SystemPerformanceツール(旧:^pButtons)の実行方法と、出力情報の利用方法についてご紹介します。
※^SystemPerformance の実行にはオペレーティングシステムの管理者権限が必要です。
管理者としてシステムにログインしてから実行してください。特にWindowsで UAC(User Access Control)が有効になっている場合は特別な実行方法が必要になります。詳しくは こちら(IMPORTANT: の箇所)をご確認ください。
InterSystems IRISのウィンドウ関数を使用すると、累積合計、ランキング、移動平均など、強力な分析を直接SQLで実行できます。
ウィンドウ関数は、「GROUP BY」のように結果をまとめることなく、関連行の「ウィンドウ」(グループ上)で動作します。
つまり、ループも結合も一時テーブルも使わずに、より簡潔で高速、しかも保守しやすいクエリを書くことができます。
この記事では、よくあるデータ分析タスクに取り組むことで、ウィンドウ関数の仕組みを理解していきましょう。
SQLウィンドウ関数は、データ分析のための強力なツールです。
各行をそのまま表示したまま、複数行の集計とランキングを計算することができます。
ダッシュボード、レポート、または複雑な分析を構築しているかどうかに関係なく、ウィンドウ関数はロジックを簡素化し、パフォーマンスを大幅に向上させます。
注意:私はウィンドウ関数の専門家ではありませんが、私がウィンドウ関数を理解するうえで役立ったインサイトやリソースを共有したいと思います。 ご提案や訂正があれば、ぜひお知らせください!
累積合計やランキング、行間の差分を計算するために、複数のSQLクエリや手続き型のループを書いたことはありませんか?
開発者の皆さん、こんにちは!
この記事では、InterSystems IRIS サーバサイドで実行できるPython(Embedded Python)のデバッグ方法をご紹介します。
前提:VSCode の Python デバッガ用モジュールの debugpy を利用するため、Python スクリプトファイルに記載した Embedded Python のコードが対象です。クラス定義に[Language = python]を指定して記載しているコードは対象外となります。ご注意ください!
開発者の皆さん、こんにちは!
2026年最初の InterSystems プログラミングコンテストの内容が決定しましたのでお知らせします!📣
🏆 InterSystems フルスタックコンテスト(USコミュニティ) 🏆
期間:2026年2月2日~3月1日
賞金総額:$12,000
.jpg)
InterSystems IRIS、特にInteroperabilityを使い始めたころ、最初によく思っていた疑問の一つは「処理を一定間隔やスケジュールで実行するにはどうすればいいのか」でした。 このトピックでは、この問題に対処する2つのシンプルなクラスをご紹介します。 似たようなクラスがEnsLibに見当たらないことに、驚いています。 十分に検索しなかったのかもしれません。 いずれにせよ、このトピックでは複雑な作業を扱うつもりはなく、初心者向けの簡単なスニペットを少し紹介します。
こんにちは、セールスエンジニアの奥山です。
OSSのLLMアプリ開発プラットフォーム「Dify」に、IRISをベクトルストアとして利用できる機能をコントリビュートしました。Dify 1.11.2でマージされています。
https://github.com/langgenius/dify/releases/tag/1.11.2
Difyは、RAGやAIエージェントをノーコード/ローコードで構築できるOSSプラットフォームです。 GitHub Stars 10万以上、世界中で急速に利用が広がっています。
https://github.com/langgenius/dify
これまでWeaviate、Qdrant、Milvus、PgVector等のベクトルDBに対応していましたが、 今回IRISが選択肢に加わりました。
Difyの公式docker-compose.ymlにIRIS 2025.3の設定が含まれています。
.envファイルでVECTOR_STORE=irisと設定するだけでIRISが起動します。
# .envの設定
VECTOR_STORE=iris
接続情報のデフォルト値も設定済みなので、ローカルで試すだけならすぐに動かせます。
これは InterSystems FAQ サイトの記事です。
こちらの記事では、データベースサイズを拡張する方法をご紹介します。
2.空き容量がなくなったときに、拡張するサイズを設定したい場合
管理ポータル、またはコマンドで、拡張したいサイズにデータベースサイズを指定します。
管理ポータル:
[システム管理] > [構成] > [システム構成] > [ローカルデータベース]
対象のデータベースを選択し、データベース属性のダイアログで、「現在」に拡張したいサイズ(拡張後のサイズ)を指定します。
保存クリック後、即座にデータベースは拡張されます。

上記例は、もともと11MBだったサイズを50MBに拡張、つまり39MB拡張したため、messages.logには以下のようなログが記録されます。
08/04/25-11:27:01:333 (3468) 0 [Database.StartExpansion] Starting Expansion for database c:\intersystems\iris\mgr\user\. 39 MB requested. 08/04/25-11:27:01:424 (3468) 0 [Database.
メール送信は、統合シナリオでは一般的な要件です。クライアントへのリマインダー、自動レポート、トランザクション確認などに使用されます。 固定メッセージは、管理やパーソナライズが難しくなりがちです。 そこで登場するのが templated_email モジュールです。InterSystems IRIS InteroperabilityをJinja2テンプレートの機能を組み合わせます。
Jinja2はPythonエコシステムで人気のあるテンプレートエンジンで、完全に動的なコンテンツ生成を可能にします。 次をサポートします:
簡単なメール本文テンプレートの例:
Hello {{ user.name }}!
{% if orders %}
You have {{ orders|length }} new orders:
{% for o in orders %}
- Order #{{ o.id }}: {{ o.
この記事では、2025.2リリースで導入された、IRIS SQL処理の重要な要素、InterSystems IRISのテーブル統計処理の大きな改善について紹介します。 まず最初に、テーブル統計とは何か、どのように利用されるのか、そしてなぜ今回の改善が必要だったのかを簡単におさらいします。 その後、テーブル統計を収集・保存するための新しいインフラの詳細を掘り下げてから、この変更が実際にアプリケーションにどのような影響を与えるのかを詳しく見ていきます。 最後に、新しいモデルで可能になったパターンに関する追加の注意点をいくつか紹介し、今回の初期リリースに続く次のフェーズに期待をつなげます。
Googleフォームは、データ収集、アンケートやクイズへの回答を行うための市場で最も人気のソリューションです。そのため、システムを拡張または開発することなく、患者データや回答を実用的な方法で収集するのに理想的な手段と言えます。本記事では、Google Cloudにアカウントを作成し、Google Forms APIを利用するアプリケーションを登録します。また、APIを利用するためのサービスユーザーを生成して、最後にEmbedded PythonとIRISを用いて新しいフォームを作成し、入力されたデータを自動的に収集する方法ついて詳しく説明します。
Google Cloudアカウントをお持ちでない場合、これらの手順に従ってください。すでにお持ちの場合は、次のセクションに進みます。
Google Cloud Platform(GCP)アカウントを作成するには、最初にGoogleアカウントを作成する必要があります。 次に、Google Cloudコンソールにサインインし、無料枠を利用開始するか、課金アカウントを作成できます。 ステップバイステップガイドは次のとおりです。
1. Google Cloudコンソールに移動する。cloud.google.comにアクセスします。
2. Googleアカウントにサインインする。

血液検査の結果を見て、何が書いてあるのか全然わからないあの感じ、分かるかと思います。 その問題を解決してくれるのがFHIRInsightです。 そもそも医療データは怖いものや分かりにくいものではなく、誰もが活用できるものであるべきだ、という考えから始まりました。 血液検査は健康チェックではとても一般的ですが、正直なところ、理解するのは多くの人にとって難しく、臨床検査を専門としない医療スタッフにとっても難しいことがあります。 FHIRInsightは、血液検査のプロセスをもっと分かりやすくし、情報をより活用しやすくすることを目指しています。

すべては、シンプルながら強力なこの質問から始まりました。
「なぜ血液検査の結果を読むのは、時には医師にとってもこんなに難しいのか?」
血液検査の結果を見たことがあるなら、大量の数字、意味の分かりにくい略語、そして自分の年齢や性別、状態に合っているかどうかもわからない「基準範囲」を見たことがあると思います。 確かに診断ツールではありますが、状況が分からなければ、結局推測することになります。 経験豊富な医療従事者でさえ、すべてを理解するためにはガイドラインや論文、専門家の意見を照らし合わせる必要があることがあります。
そこで登場するのがFHIRInsightです。
これは InterSystems FAQ サイトの記事です。
こちらのトピックでは、ミラー環境でECPを行う場合の設定方法と注意すべき点について、ご案内します。
手順は以下になります。
(1) 両方のフェイルオーバーメンバおよび任意の DR 非同期メンバで、ECPを有効にします
(2) ECP アプリケーションサーバ(ECPクライアント)で、ECPの設定を行います
(3) ECP アプリケーションサーバ(ECPクライアント)で、リモートデータベースの作成を行います
今回作成するECP構成は、ドキュメントにある以下のイメージの赤丸のインスタンスによる構成になります。
| A:プライマリ・ フェイルオーバーメンバ |
B:バックアップ・ フェイルオーバーメンバ |
C:DR非同期 | ECPアプリケーションサーバ (クライアント) |
|
| ミラー名 | TESTMIRROR | TESTMIRROR | TESTMIRROR | |
| ミラーメンバ名 | MACHINEA | MACHINEB | MACHINEC | |
| IPアドレス | 10.0.0.244 | 10.0.0.151 | 10.0.0.60 | 10.0.0. |
これは InterSystems FAQ サイトの記事です。
バージョン2025.1以降では、ジャーナルファイルを作成したインスタンスと同じバージョン、またはそれ以降のバージョンへのジャーナルファイルのリストアは保証されていますが、2025.1以降で作成されたジャーナルファイルを2024.1以前のインスタンスにリストアできません。
ドキュメント:ジャーナル・リストアの互換性 (アップグレード関連)
2025.1以降のインスタンスのデータを、2024.1以前にリストアしたい場合、時間がかかる方法となりますが、2025.1以降のバージョンから対象グローバル変数をエクスポートし、2024.1以前のバージョンにインポートする方法を利用できます。
InterSystems 製品のミラーリングについては、全メンバー(プライマリ/バックアップ/非同期)で同一バージョンを使用する必要があります。
ミラーリングは、ジャーナルファイルのリストアを内部的に利用しているため、バージョン2025.1へアップグレードした場合、全メンバーのバージョンが2025.1以降である必要があります。ご注意ください。
これは InterSystems FAQ サイトの記事です。
ミラーの現在の状態は、管理ポータルのミラーモニタで確認できます。
こちらのトピックでは、それらの情報をコマンドで確認する方法をご紹介します。
(1) フェイルオーバメンバ(プライマリ・バックアップ)の状態を確認する
(4) 定期的にミラーステータスを取得するサンプル(ツール)のご紹介
では、以下のようなミラーの状態を確認してみます(以下はフェイルオーバーメンバ・プライマリの状態)。
フェイルオーバメンバのミラーの状態は、SYS.Mirror クラスの GetFailoverMemberStatus メソッドで確認できます。
結果は出力引数に$list形式で返されます。詳細はクラスリファレンスをご覧ください。
例)
プライマリ、バックアップともActiveな状態
// フェイルオーバーメンバ(プライマリまたはバックアップ)で確認
// 以下はプライマリで実行した例
%SYS>set x=##class(SYS.Mirror).GetFailoverMemberStatus(.thismember,.
FHIRサーバー
FHIRサーバーとは、FHIR(Fast Healthcare Interoperability Resources)標準を実装するソフトウェアアプリケーションであり、医療システムが標準化された方法で医療データを保存、アクセス、交換、および管理することができるようにします。
Intersystems IRISは、以下のFHIRリソースを保存および取得できます。
Fast Healthcare Interoperability Resources(FHIR)は、HL7 Internationalによって作成された標準化されたフレームワークであり、柔軟かつ開発者に優しい最新の方法で医療データの交換を促進します。
開発者の皆さん、こんにちは!
2026/1/7更新:ページメニューの日本語切り替えが追加されたので本文同じですが画像を貼り換えました。
コミュニティページの上部ヘッダにある「Global Masters」ページ、ご覧になったことはありますか?👀
Global Masters は、ゲーミフィケ―ションプラットフォームで、InterSytsems のテクノロジーに関するチャレンジ (タスク)を完了させたり、バッジやポイントを獲得したり、そのポイントを様々な賞品に交換できます🎁! .png)
詳細は「グローバルマスターズ・アドボケート・ハブ - ここからスタート!」をご参照ください。
まずは、現在お持ちのポイントを確認するため、「Global Masters」に移動しましょう!
ログイン画面が表示されましたら、コミュニティにログインしているアカウントと同じアカウントでログインできます。ログイン後、画面右上に現在お持ちのポイント数が表示されます。(赤線部分)
また、ポイントの隣のアイコンをクリックするとページメニューを日本語に切り換えるメニューがあります。(緑線部分)
.png)
トップページには様々なタスクやゲームが用意されています。チャレンジすると記載されているポイントが加算されます。
交換できる賞品を確認するためには、画面上部にあるメニュー「マイリワード」をクリックします。
MacOS(Linux)とWindows両方で動作するObjectScriptプログラムを開発する際に、よくやらかしてしまうミスを共有します。
WindowsとUNIX系のファイルシステムの1つの違いは、ディレクトリのセパレータです。
UNIX系は、/(スラッシュ)
Windows系は、\(バックスラッシュ)
です。
ファイルを読み書きするプログラムでセパレータをOS別に選択するという以下のようなコードをよく書くのですが、
if ($system.Version.GetOS() = "UNIX") {
set sep = "/"
}
else {
set sep = "\"
}
ここでこのバックスラッシュをキーボードで入力すると、日本語キーボードの場合、バックスラッシュの代わりに¥(円マーク)が入力されてしまいます。
ソースコードがSJISの場合は、これでも問題ないのですが、クロスプラットフォームで開発する場合は、UTF8で通常作成するので、Macで動かすと問題ないのにWindowsで動かすとエラーになるということがちょくちょく起こります。
そして、これは意外に間違いに気づきにくいです。
ちなみにPythonでは、どちらでも/を使っておけば問題ないので、こんな問題は起こることはないと思います。